2013-07-23 3 views
2

я получил спросить, есть ли возможность сделать что-то подобное в C#, позволяет сказать, что мы получили SUCHE код:C# Автоматизировать Конструкторы рефакторинга

class A 
{ 
    public A(int b); 
} 

class B : A 
{ 
    public B(int b) 
    : base(b); 
} 

class C : B 
{ 
    public C(int b) 
    : base(b) 
} 

и теперь, если я хочу изменить в классе А «ИНТ б "to" Car b "мне нужно изменить это в каждом классе, можно ли реорганизовать это как-то автоматизировать? не

+0

Единственное, что является автоматическим, - это конструкторы без параметров, если вы не укажете явных конструкторов экземпляров. В случае, если компилятор создаст такой конструктор, как 'public ClassName(): base() {}' (или 'protected' в случае класса abstract). –

ответ

0

Если возможно, вы можете использовать C# Generics:

class A<T> 
{ 
    public A(T b) 
    {} 
} 

class B<T> : A<T> 
{ 
    public B(T b) 
    : base(b) 
    {} 
} 

class C<T> : B<T> 
{ 
    public C(T b) 
    : base(b) 
    { } 

} 

Вы можете использовать следующий синтаксис для междунаров (и использовать тот же принцип для автомобиля):

var intVar = new C<int>(10); 

В противном случае, нет инструмент для изменения всех типов одновременно. Если вы измените тип параметра на Car, Resharper предложит вам реорганизовать конструктор производного класса.

Смежные вопросы