1

「using」ステートメントを使用して、別の .cs ファイルから同等の変数を取得する方法を考えていました。お気に入り

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

(名前空間はこちら)のファイルには

A = 3

変数を直接参照できますか、それとも別の方法で見つける必要がありますか?

4

3 に答える 3

4

他の場所で使用できる一連の定数値を 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);
        }
    }
}
于 2012-11-21T20:51:47.577 に答える
1

そのようなコードのスコープを動的に変更することはできません。識別子とは何かはコンパイル時に決定されるため、実行時にその意味を変更することはできません。

さまざまなファイルから使用したいものを指定するクラスまたはインターフェイスを作成し、クラスを継承するか、インターフェイスを実装して、さまざまなファイルでさまざまな実装を作成します。実装の 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 に答える