I came across a lot of code in our company codebase with the following structure
class Base
{
public Base (var a, var b)
{
base_a = a;
base_b = b;
}
var base_a;
var base_b;
}
class Derived:Base
{
publc Derived (var a,b,c,d): base (a,d)
{
der_c = c;
der_d = d;
}
var der_c;
var der_d;
var der_e;
}
class Ref
{
Base _ref;
public Ref(var a,b,c,d)
{
_ref = new Derived (a,b,c,d)
}
public void method()
{
_ref.der_e = 444; // won't compile
}
}
der_e를 초기화하는 올바른 방법은 무엇입니까? _ref에 대해 기본 클래스 참조 및 객체 파생 클래스 사용의 장점은 무엇입니까? 사실 기본 클래스 참조를 사용하면 여러 파생 클래스 객체를 보유 할 수 있다는 사실입니까? 그렇다면, 파생 클래스의 모든 멤버 변수를 생성 중에 초기화해야합니다 (예 : _ref = new Derived (a, b, c, d)). 나중에 메서드에서 _ref.der_e를 초기화하려면 어떻게해야합니까? 나는 이것을 할 수 있다는 것을 알고있다. (var cast_ref = _ref as Derived; cast_ref.der_e = 444)하지만이 예제는 모범 사례로 보이지 않는다. 그러한 구조를 갖는 아이디어는 무엇이며, 파생 된 클래스 객체가 생성 된 후에 그 객체의 멤버를 초기화하는 것이 옳은 것은 무엇입니까?기본 클래스 참조 객체를 사용하여 파생 클래스 멤버 변수 초기화
전혀 컴파일되지 않습니다 준 코드 - 당신은 사용할 수 없습니다 'var' 매개 변수 나 필드에 대해 (실제로'var'라고하는 클래스가 없다면). 현실적인 * 예제를 제공하십시오 - .NET 명명 규칙에 따라 더 짧고 이상적으로 형식을 지정하십시오. –