Ari*_*Ari 0 c# variables class
我一直在阅读有关属性和类变量的一些教程,我理解如果你设置一个类变量(在下面的例子中,bar),那么你可以调用一个类型将这个对象强制转换为一个特定的变量(我做过)不要在下面的例子中这样做,只是为了澄清).但是,如果您使用同一个类变量,并且已经存储了一个对象来调用方法,会发生什么?参考下面的例子,将"ok"传递给方法,还是简单地忽略它?我尝试运行这个虽然这个编译器,它似乎没有问题,但我不确定它是否实际上做任何与对象栏设置为.谢谢您的帮助!
public class Foo
{
public static void Main()
{
Foo bar = new Foo();
object ok = "ok";
bar = (Foo)ok;
bar.genericMethod();
}
public void genericMethod()
{
}
}
Run Code Online (Sandbox Code Playgroud)
不,这不对.不确定你的"类变量"是什么意思 - 你在这里有两个局部变量,类型Foo和object.第二种方法既不能访问它们,也不能访问第一种方法.如果你想在第二个方法可以访问,那么你必须做两件事情:传递一个作为参数传递给第二个方法(因此它被定义,例如,如void genericMethod(Foo foo)),或声明变量作为的一个领域,而不是,在类级别的两种方法之外.
您的代码将编译,但在运行时将失败bar = (Foo)ok.虽然在原则上有可能投了object一个Foo(因为Foo 是 object),在实践中这 object是不是和转换失败.