我知道在c#中使用class关键字的2个地方。
但是有什么我错过的吗?这对我来说很重要,因为我正在编写一个程序,它会计算文件中的类。在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
这是几个答案的积累。
答案 0 :(得分:11)
只计算“class”的出现次数并不能告诉你文件中有多少个类:
#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”在那里出现八次,但文件只定义了一个类。
答案 1 :(得分:4)
您可能希望使用类似ANTLR(http://www.antlr.org/)之类的内容,并使用与此SO帖子Partial grammar for counting class count类似的内容。我认为它比尝试编写自己的解析器更安全。
答案 2 :(得分:3)
也可以使用class
作为标识符,在其前面加上“at”符号。
int @class = 1;
我并不是说建议来写这个,但如果你想要计算课程,你可能会考虑它。
相关强>
答案 3 :(得分:1)
您似乎可以将class
定义为编译条件符号,例如
#if class
#else
#endif
...如果你在项目属性/构建中定义它,它就会编译。
答案 4 :(得分:0)
无法想到任何其他用法,但请记住,如果前缀为@
,则可以使用关键字作为标识符答案 5 :(得分:0)
可以在泛型方法定义中使用关键字class:
foo<T>(T object) where T:class
如果您希望能够将y
作为任何内容传递,请使用对象:
foo(string x, class y) { }