引数なしのコンストラクターの呼び出しを禁止する必要がある ac# 構造体があります。
MyStruct a;
/// init a by members // OK
MyStruct b = MyStruct.Fact(args); // OK, inits by memebers
MyStruct s = new MyStruct(); // can't have that
有効なデフォルト値がなく、すべてのメンバーに有効な値が必要であるため、主にすべてのメンバーに明示的な値を強制するためにこれを行っています。
C++ ではこれは簡単です。プライベート コンストラクターを追加しますが、c# では許可されません。
上記を防ぐ方法はありますか?
ファクトリの使用を強制する必要があるため、すべてのパブリック コンストラクター呼び出しを防止することも同様に機能します。
完全な開示者: 単一の依存関係を回避するために、C# アプリは自動的に D に変換され、new Struct()
その結果がポインターになり、これが私にとって厄介なことになっています。ただし、この質問はそれにもかかわらず関連性があるため、無視してください。