0

比較の変数で System.Type を使用できるかどうかを確認しようとしています。次のコードがあります。

    internal ObservableCollection<FREQUENCY> GetFrequencies(System.Type equipmenttype)
    {
        ... 
        foreach (var incident in query)
        {

            if (typeof(equipmenttype).IsSubclassOf(typeof(incident)))
            {
                foreach (var freq in incident.FREQUENCY)
                {
                    freqs.Add(freq);
                }
            }
        }
        return freqs;
    }

しかし、変数 'tmp' および 'equipmenttype' は、「型または名前空間名 'tmp' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)」というエラーを引き出します。

通常、これは typeof(MYCLASS) と言って使用されることは理解していますが、System.Type の変数を使用してこれが可能かどうか、またはそれを行う方法があるかどうかに興味がありました。ありがとう。

4

2 に答える 2

4

tmpコードのどこにあるのかわかりません。しかし、あなたはこれを見逃していることを確認してください

if (typeof(equipmenttype).IsSubclassOf(typeof(incident)))

する必要があります

if (equipmenttype.IsSubclassOf(incident.GetType()))

typeof演算子はRuntimeType、Type の を取得するために使用されます。しかし、あなたはすでにRuntimeTypeここにいるequipmenttypeので、ここで使う必要はありませんtypeof

于 2013-09-25T16:11:41.167 に答える
2

試してみてくださいif (equipmenttype.IsSubclassOf(incident.GetType())equipmenttypeはすでに でSystem.TypeありGetType()、インスタンスの型を決定するために呼び出す必要があります。

于 2013-09-25T16:11:09.867 に答える