Я конвертирую код Delphi в С#.
У меня есть сложная структура классов, в которой класс является основным стволом всех своих дочерних элементов.
В Delphi я могу определить частное/защищенное поле с типом и свойство для этого поля с тем же типом и больше не писать тип в дочерних классах.
Вот небольшой (и функциональный) пример:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
Parent = class
strict protected
_myFirstField: Int64;
public
property MyFirstField: Int64 write _myFirstField;
end;
Child1 = class(Parent)
public
// Inherits the write/set behaviour..
// And it doesn't need to define the type 'over and over' on all child classes.
//
// ******* Note MyFirstField here has not type.... ************
property MyFirstField read _myFirstField; // Adding READ behaviour to the property.
end;
var
Child1Instance: Child1;
begin
Child1Instance := Child1.Create;
//Child1Instance.MyFirstField := 'An String'; <<-- Compilation error because type
Child1Instance.MyFirstField := 11111;
WriteLn(IntToStr(Child1Instance.MyFirstField));
ReadLn;
end.
Как видите, мне не нужно снова и снова определять тип свойства. Если мне нужно будет изменить тип var в будущем, я могу изменить только в родительском классе.
Есть ли способ получить такое же поведение в С#?