Я конвертирую код Delphi в C #.
У меня есть сложная структура классов, где класс является основным 'trunk' всех его дочерних элементов.
В 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 в будущем, я могу изменить только в родительском классе.
Есть ли способ получить такое же поведение в C #?