【问题标题】:How to use variable from resource another .cs file with "using"如何使用“使用”资源另一个.cs文件中的变量
【发布时间】:2012-11-10 05:00:39
【问题描述】:

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

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

并且带有 (namespace here) 的文件会有

A = 3

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

【问题讨论】:

  • 你通常用什么语言编程?
  • 一句话,没有。那只是现在 namespace/using 构造不起作用。您需要提供有关实际潜在问题的更多详细信息,以便我们真正能够提供更多的 C# 方式来执行此操作。
  • 我正在使用 C#,我的问题是我有一个需要端口号才能运行的程序。我很容易想通过变量编辑这些数字,因为我必须重复使用该数字。我想将变量存储在另一个文件中以便于访问。
  • @user1733537 值是否在编译时发生变化,在程序开始时一次,在整个程序中不断变化,还是什么?该数字是否仅在一个地方、整个应用程序、应用程序的一个部分等中使用?
  • 好的,我想要一个包含类似 A = 1 B = 2 C = 3 的文件,然后我想从另一个文件中引用这些变量。但是你说使用类静态属性,我该怎么做?当我转到文件或程序进行并编辑它们时,变量正在被更改。

标签: variables namespaces using c#


【解决方案1】:

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

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);
        }
    }
}

【讨论】:

    【解决方案2】:

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

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

    例子:

    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);
    

    【讨论】:

      【解决方案3】:

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

      Output(ClassName.A, 8);
      

      否则,您需要提供更多关于您拥有以及您正在尝试做什么的上下文。

      【讨论】:

        猜你喜欢
        • 2012-06-19
        • 1970-01-01
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 2013-08-22
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多