【发布时间】:2013-08-17 07:22:45
【问题描述】:
我有一个我已经定义的对象,我从中定义我的对象的类有一个变量。这个变量的类型和这个类一样,见下图:
public class _car
{
public _car()
{
}
_car BMW = null;
}
.
.
.
注意最后一行是对象机器的全局定义。 我的问题是,如果在不位于 _car 类中的方法中执行以下操作:
public another_Class
{
public another_class()
{
}
public _car machine = new _car();
public int this_Methode()
{
if (Machine.BMW == null){
Machine.BMW = new _car();
return 1;
}
return 0;
}
public void main_Methode() {
int i=this_Methode();
i+=this_Methode();
//We run main_method in somewhere in our program now you say i is 0 or 1 or2 ?
}
}
这样想 //我们现在运行 main_method 你告诉我 i 的值?是 0 还是 1 还是 2?
【问题讨论】:
-
只要存在
_car的实例,字段BMW就会存在。它是否为 null 将取决于该实例是否具有分配给它的值。顺便说一句,如果在类外部访问值,我建议使用属性而不是字段。 -
“活着”和“使用代码”是什么意思? (分别是“非空”、“被调用”?)
-
“全球”是什么意思? C# 中没有全局变量之类的东西。你的变量甚至不是静态的。这意味着您需要一个对象引用来访问它。而且只要有对象引用,也会有
BMW的引用,并且不会被销毁。 -
此代码无法编译。
Machine没有在任何地方定义。 -
亲爱的,我使用您的提示更改了问题现在我正在等待您的建议