这可能吗!!?!?!?!?
我正在尝试创建一组模拟许多不同类型事物的类。这些东西的属性随着时间的推移而改变,我希望我的代码易于维护,所以我想做如下的事情:
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(使用前将#替换为@)