我试图找出你是否可以拥有下面的东西:
namespace myNamespace
{
public string myString;
}
我找不到任何可以解释这一点的东西,可能是因为我搜索关键字很糟糕。谁能告诉我是否有办法做到这一点?
如果 可能,我可能已经搞砸了。无论哪种方式,我都想知道。
我想知道如何做到这一点,因为我希望能够在整个命名空间中访问它,而不必在我不同的类中使用.myString。这在我看来似乎是合乎逻辑的,但显然不可能。
答案 0 :(得分:4)
您无法在namespace
:
// doesn't compile
namespace myNamespace
{
public string myString; // <- syntax error
}
但您可以在using static
(C#6.0 +)的帮助下模仿这样的语法:
namespace MyLibrary
{
// put myString within a static class
public static class MyStorage
{
// let turn field into property
public static string myString {get; set;}
}
}
然后使用带有using static
的静态类:
// please, notice "using static"
using static MyLibrary.MyStorage;
namespace myNamespace
{
public class MyClass
{
public void MyMethod()
{
myString = "abc"; // as if it has been declared in the namespace
string test = myString;
...
}
}
}