获取此实例的名称

2023-12-04

这可能吗!!?!?!?!?

我正在尝试创建一组模拟许多不同类型事物的类。这些东西的属性随着时间的推移而改变,我希望我的代码易于维护,所以我想做如下的事情:

public class Cat
{
    public string CatName { get; set; }

    public Cat()
    {
        this.CatName = MAGICSTUFF.GetInstanceName(this);
     }

}

在其他地方,当我想要接触那些猫时,我希望能够说:

[TestMethod]
public void test_awesome_cats()
{
    Cat Tiger = new Cat();
    Assert.IsTrue(Tiger.CatName.Equals("Tiger"));
}

因此,我尝试将命名约定映射到对象属性中。我无法弄清楚的部分是 MAGICSTUFF.GetInstanceName。这是一件事吗?

我怀疑这是不可能的,所以如果是这种情况,希望有人能给我一些其他关于在这种情况下使用约定的巧妙方法的想法。一段时间以来,我一直在考虑使用 Cat 类的属性,但我喜欢如果可能的话,效果会更好。


不可能进行这种反思。根据调试选项和范围,编译器可以删除变量名称。变量的名称是其“地址”的别名,因此不能颠倒(至少在 Java 和 C# AFAIK 中)。

一个对象可以从任何变量指向,因此变量名是无关紧要的,并且该对象不知道这种东西:

Cat tiger = new Cat();
Cat tiger2 = tiger;

多变的tiger2指向Cat“tiger”,所以两个变量指向具有不同名称的同一对象。

使用构造函数中传递的类属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取此实例的名称 的相关文章

  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • R,data.table,按列*数字*分组并对列求和

    假设我有以下内容数据表 gt DT A B C D E N 1 J t X D N 0 07898388 2 U z U L A 0 46906049 3 H a Z F S 0 50826435 9998 X b R L X 0 4987
  • 在网页上动态显示 CSV 文件作为 HTML 表格

    我想在服务器端获取一个 CSV 文件并将其动态显示为 html 表格 例如 这个 Name Age Sex Cantor Georg 163 M 应该变成这样 table tr td Name td td Age td td Sex td
  • Jackson 2 和 Spring Autowired bean

    我的 User 对象的 Jackson 序列化遇到了问题 有一些带有 getter 和 setter 的私有字段 当我做这样的事情时 一切正常 public String json MyUser user new MyUser user s
  • 使用 VBA 将电子邮件正文复制到 Excel 中

    我想选择特定电子邮件的正文 将其复制并粘贴到 Outlook 中 我知道在电子表格中按 Ctrl A 然后按 Ctrl C 会更容易 但这是涉及报告自动化的更大流程的一部分 Sub GetFromInbox Dim olApp As Out
  • Blazor输入+数据列表如何将所选项目绑定到对象

    第一次接触 Blazor 我有以下组件内容 div class form group row div
  • vuex commit 不提交存储

    我很难承诺在商店工作 我通过一个动作来调用突变 这似乎工作得很好 export const location state x 0 y 0 z 0 extent epsg EPSG 3857 mutations setLocation sta
  • 如何在提交时自动更新 git 标签 --amend

    If I do git commit amend对于标记的提交 标记将消失 我需要删除原来的标签并重新添加 有什么办法可以将原来的标签移动到新的提交吗 不能直接绑定创建一个新的提交 amend 和一个标签 其中仍然引用原始提交 您需要移动标
  • PHP - 以相同的方式对两个数组进行排序

    我有两个不同的数组 一个数组 a 用于人员列表 我的另一个数组 b 用于列出他们的年龄 我先按数字对 b 进行排序 然后将其反转 以便按降序排列 我顺利完成了这部分 如何对 a 人员姓名列表 进行排序 以便相同的值仍然与排序列表配对 Exa
  • 检查浏览器是否支持 JavaScript 中的 document.querySelectorAll

    现在虽然大多数现代浏览器都支持document querySelectorAll 您可能会在使用旧版本的 Internet Explorer 时遇到问题 检查浏览器是否支持某个功能的明显方法是 if document querySelect
  • 配置不允许连接到 http://packagist.org/packages.json

    我正在尝试在我的电脑上安装 laravel 我指的是图罗铁路点laravel 安装教程 安装 Composer 后尝试创建新的 Laravel 项目但出现此错误 这是我收到的错误 我有同样的问题 但后来我尝试这样做 composer con
  • 将顶点缓冲区转换为顶点数组

    我正在研究 OpenGL 程序 我必须计算一个边界框 我编写了代码来执行此操作 但无法从 vertex buffer 获取顶点坐标 有人可以向我解释一种从顶点缓冲区获取数据的简单方法吗 我正在使用 Java for android 和 Op
  • “或”条件导致“if”出现问题

    我遇到了问题or函数中的条件 这if语句不断评估为True无论什么价值choice是 当我删除or the if工作正常 def chooseDim choice input Do you need to find radius or ar
  • 套接字、Unix 域 UDP C++ recvfrom 无法填充源地址

    我正在尝试使用 UDP 在 C 中的 Android 上创建 unix 域套接字服务器和客户端 我需要客户端向服务器发送一条消息 hi 然后服务器需要从那里向客户端发送数据 我已经成功创建了双方的套接字 并且我能够在服务器上接收来自客户端的
  • 将函数指针传递给函数时处理<未解析的重载函数类型>

    让我们考虑一下 void goo std cout lt lt void goo n int goo int std cout lt lt int goo int n return 42 现在我想使用如下定义的包装函数来调用这些函数之一 t
  • 当 CakePHP 表单中的字段属于 hasMany 关联时,如何“解锁”该字段

    我有一个表格代表RewardModifier我们数据库中的表 那RewardModifier hasMany RewardOption 我的表格结构如下 图片 So the RewardModifier页面上可以有很多元素 每个元素有很多R
  • 具有返回问题的求和的所有路径

    我有一个问题 如何找到总和的所有路径 问题是 给定一棵二叉树和一个数字 S 找到从根到叶的所有路径 使得每条路径的所有节点值之和等于 S 我的递归方法是 def all sum path root target result find su
  • jQuery UI 对话框 - 关闭事件时出现问题

    当我关闭 jQuery UI 对话框时 我尝试执行特定操作 这是我的代码的简化版本 a open trigger click function var test hello dialog dialog bgiframe true dialo
  • 法师注册表项“_singleton/VladimirPopov_WebForms_Model_Observer”已存在

    我已经从扩展中卸载了 web 并再次安装了它 因为当我尝试打开管理时收到此错误 前端工作正常 请帮忙 清除编译器缓存并在 Magento 后端将其打开非常重要 清除缓存 SSH find var cache type f delete FT
  • 插入图像sqlite

    我有一些图片 我想将其存储在 sqlite 中 我需要做什么 有两种思想流派 将它们放入目录中 然后将路径存储在文本字段中 将图像数据存储在 blob 字段中 如果数据库很大并且图像也很大 那么文件系统方式的性能更高 如果您只想快速完成某件
  • 获取此实例的名称

    这可能吗 我正在尝试创建一组模拟许多不同类型事物的类 这些东西的属性随着时间的推移而改变 我希望我的代码易于维护 所以我想做如下的事情 public class Cat public string CatName get set publi