一般的に言えば、コンストラクターに渡さなければならない一連のプライベート メンバーを使用してクラスをインスタンス化する場合、既に何か問題が発生しています。
MyClass myClass = new MyClass(x, y, z, 7, 'c', someOtherClass)
必要に応じて、関連するフィールドを構造体または別のクラスにカプセル化できます。
class MyClass
{
public MyClass(Coordinates coords)
{
this.coords = coords;
}
private Coordinates coords;
}
public struct Coordinates
{
public int X{get; set;}
public int Y{get; set;}
public int z{get; set;}
}
そして、それをインスタンス化できます
MyClass myClass = new MyClass(new Coordinates() { X = 1, Y = 2, Z = 3 });
特定の実装がなければ、最適なソリューションを決定するのはちょっと難しいですが、実際にクラス外からフィールドを設定する必要がない場合は、次のようなことができます
class MyClass
{
public MyClass()
{
}
private int x = 2;
...
}
また
class MyClass
{
public MyClass()
{
this.x = 2;
}
private int x;
...
}