C# 将变量指向c中的其他变量#
是否可以将一个变量指向另一个变量以实现快捷方式?例如,假设在一个名为C# 将变量指向c中的其他变量#,c#,.net-4.0,C#,.net 4.0,是否可以将一个变量指向另一个变量以实现快捷方式?例如,假设在一个名为SharedResources.proxTelescope的类中有一个变量,那么如何在另一个名为prox的类中获得一个变量,以某种快捷方式指向第一个变量。我可以只做var-prox=SharedResources.proxTelescope,但如果proxTelescope更改,它将不会反映在prox上,是吗?我应该怎么做呢。我会把东西设置为一个属性 private <type> prox { get { r
SharedResources.proxTelescope
的类中有一个变量,那么如何在另一个名为prox
的类中获得一个变量,以某种快捷方式指向第一个变量。我可以只做var-prox=SharedResources.proxTelescope代码>,但如果proxTelescope更改,它将不会反映在prox上,是吗?我应该怎么做呢。我会把东西设置为一个属性
private <type> prox
{
get { return SharedResources.proxTelescope; }
set { SharedResources.proxTelescope = value }
}
private prox
{
获取{return SharedResources.proxTelescope;}
设置{SharedResources.proxTelescope=value}
}
您可以创建一个属性,例如:
public YourTypeHere prox
{
get { return SharedResources.proxTelescope; }
set { SharedResources.proxTelescope = value; }
}
如果该值应该在所有实例之间“共享”,那么最好让该变量作为其所在类的静态成员存在,并创建一个引用静态变量值的实例属性 如果变量是类,则它们是引用类型,因此其中一个变量的任何更改都将反映在另一个变量中
如果变量是结构,那么它们是值类型,如果您遇到问题,可以使用一些函数(或属性)来获取值。另一种方法是使用Func
:
你说的变化是什么意思?如果proxTelescope的属性或变量发生变化,它也会在prox中发生变化。但是,如果proxTelescope的赋值本身发生变化,那么它现在将成为与prox不同的对象。是的,我指的是赋值。至少使用这种方法,您不会依赖模糊和非特定的引用进行链接。将其声明为类属性更清晰,更易于阅读和维护。但是,它的效率较低,并且是代码膨胀的次要原因。这都是关于你真正想要完成的事情。好吧,我会接受一个代表性较少的。谢谢,我不知道为什么我没有想到这一点。“您可以在7分钟内接受答案。”假设该属性为引用类型,则此操作应该有效。值类型属性并非如此明确。可变结构会做一些奇怪的事情。但如果其中一个引用变量被设置为不同的值,它将不会反映在其他变量中,对吗?@ArlenBeiler更正。如果proxTelescope被重新分配,那么它将不再反映在其他对象中。我同意,我假设他不会将其分配给指向另一个对象,只会更改他已经引用的对象。
public class MyClass
{
public Func<DesiredType> ValueGetter {get;set;}
public DesiredType Value { get { return ValueGetter(); } }
}
var myClass = new MyClass();
myClass.ValueGetter = () => SharedResources.proxTelescope;
var value = myClass.Value;