我在.ΝΕΤ上读过一些关于泛型的信息,并注意到一件有趣的事情.
例如,如果我有一个泛型类:
class Foo<T>
{
public static int Counter;
}
Console.WriteLine(++Foo<int>.Counter); //1
Console.WriteLine(++Foo<string>.Counter); //1
Run Code Online (Sandbox Code Playgroud)
两类Foo<int>,并Foo<string>在运行时不同.但是具有泛型方法的非泛型类呢?
class Foo
{
public void Bar<T>()
{
}
}
Run Code Online (Sandbox Code Playgroud)
很明显,只有一个Foo班级.但是方法Bar怎么样?所有泛型类和方法都在运行时使用它们使用的参数关闭.这是否意味着类Foo有许多实现,Bar并且有关此方法的信息存储在内存中?
我在c#中构建正则表达式时遇到了一些麻烦.
例如,我有一堆字符串:
1: TestString.WrittenEspecially.ForStackOverflowStringTest
2: TestString.WrittenEspecially.ForStackOverflowString
3: TestString.WrittenEspecially.StringForStackOverflowStringTest
4: TestString.WrittenStringEspecially.ForStackOverflowStringTest
Run Code Online (Sandbox Code Playgroud)
我想在以"1:"或"3:"开头的行中找到所有出现的单词"String".
我有一个正则表达式: ^(1:|3:).*(?<str>String)+.*
但它只找到最后一次出现的命名组.
有任何想法吗?