ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0188デフォルトの名無しさん (アウアウ Sa47-wLiW)
2016/08/23(火) 19:15:45.80ID:L2g0FUtnaえーと。頭悪くてすまん。179だと、
子のCircleは(Factoryも)親がどう初期化されるかを知ってなきゃいけない。今回だと x, yをReadByte()
で、一時的に親を作って初期化すれば知らなくて済む。
みたいな事を考えてたんだけど
public class Factory{
public static Shape FromStream(Stream stream){
Shape s=new Shape(stream);
// int x = stream.ReadByte();
// int y = stream.ReadByte();
switch (stream.ReadByte()){
case 0:return s;
case 1:return new Circle(s, stream);//sはgcで殺す
default:throw new Exception();
}
}
}
public class Circle : Shape {
public double r;
public Circle(Shape s, Stram stream)
{base.init(s); // 親の初期化 :base(s)でいいか
r=stream.ReadByte();
}}
■ このスレッドは過去ログ倉庫に格納されています