1

C# で class キーワードが使用されている場所を 2 か所知っています。

  1. クラス宣言で
  2. 一般的な制約 (T : クラスのクラス GenericClass)

しかし、私が見逃したものはありますか?ファイル内のクラスをカウントするプログラムを書いているので、それは私にとって重要です。msdn または C# 仕様に情報が見つかりません。

編集

#if class
partial class C<T> where T : class
{
    // class!
    int @class = 123;
    string c = "class";
}
partial class C<T> where T : class {}
#else
partial class D {}
partial class D {}
partial class D {}
#endif

いくつかの答えの積み重ねです。

4

6 に答える 6

11

「クラス」の出現回数を数えるだけでは、ファイル内にいくつのクラスがあるかわかりません。

#if FOO
partial class C 
{
    // class!
    int @class = 123;
    string c = "class";
}
partial class C {}
#else
partial class D {}
partial class D {}
partial class D {}
#endif

そこには文字列「class」が 8 回表示されますが、ファイルでは 1 つのクラスしか定義されていません。

于 2012-05-01T22:54:25.557 に答える
4

ANTLR(http://www.antlr.org/)のようなものを使用し、たとえば、このSO投稿のようなものを使用してクラス数を数えることができます。独自のパーサーを作成するよりも安全だと思います。

于 2012-05-01T22:36:34.517 に答える
3

class「アット」記号を前に付けることで、識別子として使用することもできます。

int @class = 1;

それを書くのが賢明だと言っているわけではありませんが、クラスをカウントしようとしている場合は、それを検討することをお勧めします。

関連している

于 2012-05-01T22:30:42.637 に答える
1

classコンパイル条件シンボルとして定義 できたようです。

#if class
#else
#endif

...そして、プロジェクトのプロパティ/ビルドで定義するとコンパイルされます。

于 2012-05-01T23:00:21.343 に答える
0

ジェネリックメソッド定義でキーワードクラスを使用することができます。

foo<T>(T object) where T:class

y何でも渡すことができるようにしたい場合は、オブジェクトを使用します。

foo(string x, class y) { }
于 2012-05-01T22:38:18.230 に答える
0

他の使い方は思い浮かびませんが、キーワードの前に @ が付いていれば、キーワードを識別子として使用できることを覚えておいてください。

于 2012-05-01T22:32:48.757 に答える