-1

C#の問題の「タイプ」については確かです。

作業名が「item」のクラスがあるとします。このクラスには「変数」などのフィールドがあります。このフィールドは、Boolean int16、int32、int64、double、uint、uint16 など、プログラム内の要素のフィールドと一致する必要があります。

依存関係のニーズで変数の型を再定義する可能性はありますか? または、この問題に対する他のアプローチはありますか?

この変数の定義を var または object として考えましたが、それを特定の型に投影しました。

問題は、後で値を割り当てるときのチェックが範囲を超えていないことですか?

4

2 に答える 2

0

ジェネリックを使用できます。新しいタイプのオブジェクトを作成すると、コード ビハインドでクラス定義が自動的に作成されます。

public class GenericClass<T>
{
    public T MyProperty { get; set; }

    public void TestMethod()
    {
        Console.WriteLine(MyProperty.ToString());
    }
}

その後、別のタイプで使用できます

        var myIntClass = new GenericClass<int>();
        var myStringClass = new GenericClass<string>();
        myIntClass.MyProperty = 1;
        myStringClass.MyProperty = "test";

        myIntClass.TestMethod();
        myStringClass.TestMethod();

ジェネリック クラスが特定のインターフェイスを実装している、クラスである、コンストラクターを持っている必要があるように、制約を設定することもできます。パブリック インターフェイス IPrintable { void Print(); }

public class GenericClassWithConstraint<T> where T : IPrintable
{
    public T MyProperty { get; set; }

    void Print()
    {
        MyProperty.Print();
    }
}

また、新しいキーワードdynamicも確認してください。実行時にオブジェクトで作業できるようになります

于 2016-11-27T19:13:08.407 に答える