有无论如何创建一个动态检索的方法,它以某种方式监视一个对象的状态,但只需要调用一次,并将更新其结果,一旦它观察的对象的状态已被修改或以某种方式改变,这不等于该方法被调用之前的状态。对象的状态/方法的动态检索
我有一个脚本这里说明我的观点:
bool isNull = false;
Object obj = new Object();
isNull = (bool)obj.ExtNull();
string reply = TestMethodA(isNull);
Console.WriteLine("Is object null? Answer: {0}. State of isNull: {1}", reply, isNull);
obj = null;
Console.WriteLine("\n\nNulling object... ");
Console.WriteLine("\n\nNew answer: ");
Console.WriteLine("\n\nIs object null? Answer: {0}. State of isNull: {1}", reply, isNull);
Console.Read();
}
public static string TestMethodA(bool isNull)
{
string str;
if (isNull)
str = "yes";
else
str = "no";
return str;
}
我们可以看到,一个对象调用铸成一个布尔值,它满足了方法的返回类型的扩展方法。然后将该语句分配给bool isNull变量。
然后调用一个字符串,并分配TestMethodA,它将isNull作为其参数。一旦在方法的参数中接收到isNull,它将分析布尔值是true还是false。如果它是真的(意思是该对象为空),则在该方法内调用的字符串变量的值为“是”。同样,如果不是,它将采取“不”。
该字符串然后返回,并传回给该方法。字符串和布尔值都在Console.WriteLine方法中发布。
发生这种情况后,obj引用变量将自身赋值为null,失去曾经引用的值。
WriteLine语句然后发布与之前相同的语句,分析对象的布尔值和状态。当然,尽管对象的状态现在为空,但是由于C#并没有真正的指针(真正的耻辱,真的,现在我想到了它)而没有不安全的代码,有没有什么办法实现这个动态?
太棒了。谢谢。 – zeboidlund 2011-05-29 04:52:24