1

我想知道如何使用“using”语句从另一个 .cs 文件中获取等效变量。喜欢

using (namespace here)
Output(A, 8);

并且带有(此处的命名空间)的文件将具有

A = 3

我可以直接引用该变量,还是需要以其他方式定位它?

4

3 回答 3

4

如果您只想在一个位置定义一组可以在其他地方使用的常量值,这是您将遵循的标准模式:

namespace MyNameSpace
{
    public static class Constants
    {
        public const int MyFavoriteNumber = 3;
    }
}

然后在其他地方你可以拥有:

using MyNameSpace;
namespace MyOtherNameSpace
{
    public class MyClass
    {
        public void Method()
        {
            Console.WriteLine(Constants.MyFavoriteNumber);
        }
    }
}
于 2012-11-21T20:51:47.577 回答
1

您不能像这样动态更改代码的范围。标识符是什么,是在编译时确定的,因此您无法在运行时更改它的含义。

从不同的文件中创建一个指定要使用的类或接口,然后继承该类或实现接口以在不同的文件中进行不同的实现。当您使用其中一种实现时,您会从该文件中获取值。

例子:

public interface ICommon {
  int A { get; }
}

public class File1 : ICommon {
  public int A { get { return 42; } }
}

public class File2 : ICommon {
  private int _value = 1;
  public int A { get { return _value; } }
}

现在您可以使用不同的对象:

ICommon x;
if (something) {
  x = new File1();
} else {
  x = new File2();
}

Output(x.A, 8);
于 2012-11-21T20:53:36.860 回答
0

.CS 文件包含,而不是变量。如果 .CS 文件包含具有静态属性 A 的,您只需引用该静态属性:

Output(ClassName.A, 8);

否则,您需要提供更多关于您拥有什么以及您正在尝试做什么的背景信息。

于 2012-11-21T20:50:22.123 回答