Я знаю, что теоретически вы не можете (и не должны) получать статические классы в C #, но у меня есть случай, в котором, как мне кажется, он мне нужен ... Я хотел определить ряд статических констант для класса Aи, как я быстро обнаружил, вы не можете этого сделать, поэтому я последовал этому уроку: http://msdn.microsoft.com/en-us/library/bb397677.aspx
Итак, у меня есть такой статический класс:
public static class ClassAConstants
{
public const string ConstantA = "constant_a";
public const string ConstantB = "constant_b";
}
Затем яиметь класс B, который расширяет класс A и добавляет некоторые новые статические константы.Я хотел бы сделать следующее:
public static class ClassBConstants : ClassAConstants
{
public const string ConstantC = "constant_c";
public const string ConstantD = "constant_d";
}
Таким образом, четыре константы будут доступны с ClassBConstants.ConstantA или ClassBConstants.ConstantD.Тем не менее, C # не позволит мне сделать это.
Как мне этого добиться?Возможно, решение совершенно иное, мне все равно, если оно вообще не использует статические константы, пока результат - то, что я хочу.
РЕДАКТИРОВАТЬ:
БлагодаряЯ обнаружил, что константы неявно являются статическими, поэтому мне действительно не нужно было создавать эти искусственные статические классы (ClassAConstants и ClassBConstants).Решение не может быть проще:
public class A
{
public const string ConstantA = "constant_a";
public const string ConstantB = "constant_b";
// ...
}
public class B : A
{
public const string ConstantC = "constant_c";
public const string ConstantD= "constant_d";
// ...
}
С этим кодом я получаю результаты, которые я хотел изначально.