我有以下代码:如何在C#/ .NET中声明常量?
public class iSito
{
public const string myVar = "5262";
public iSito()
{
}
}
现在,如果在任何情况下(在我的情况下,.ascx.cs)我尝试使用iSito.myVar,我不能得到任何价值。
为什么?
我有以下代码:如何在C#/ .NET中声明常量?
public class iSito
{
public const string myVar = "5262";
public iSito()
{
}
}
现在,如果在任何情况下(在我的情况下,.ascx.cs)我尝试使用iSito.myVar,我不能得到任何价值。
为什么?
在另一个DLL /程序集中的iSito类?如果是这样,你有没有重建DLL,并重新生成消耗DLL的应用程序?
编译客户端应用程序时,常量值在IL中写为文字。如果你改变const,你将不得不重建客户端应用程序。
如果将const更改为readonly会发生什么? (仅用于测试目的)。
重建!谢谢! :) – markzzz
当您将变量声明为只读时,当您更改该变量的值时,不必重新生成客户端应用程序。 –
@markzzz关于重建潜在需求的好处。 当值为公共时,通常鼓励使用静态只读,并且只有在内部或私有时才使用const –
你举的例子是正确的,应该努力 - consts是自动静态的,这样你就可以访问该字段为iSito.myVar
- 确保你有完整的命名空间资格一样,同样需要访问类(或添加适当的using语句) 。
iSito.myVar的作品。我尝试过这个。
没有那么有用,你可以建议为什么它可能不适用于OP的可能原因。 (如缺少使用指令) –
好的,我只是想证明这个语法必须工作的事实。 – kol
-1:我同意@RuneFS – Fischermaen
您可以在.ascx.cs文件中发布代码示例吗?你还特别指“我无法获得任何价值”? – Justin
你可以提供更多信息吗?你有编译错误吗? –