さまざまな意味を持つ多くの整数を持つコードがたくさんあります(一般的な解決策が必要ですが、特定の例では、月の日と月と年など)。これらの意味に基づいて、クラス コンストラクターをオーバーロードできるようにしたいと考えています。
例えば
int a; // takes role A
int b; // takes role B
var A = new Foo(a); // should call one constructor
var B = new Foo(b); // should call another constructor
明らかにそれは機能しませんが、int
次のような名前以外のタイプ(エイリアスだけでなく)を定義できれば:
typedef int TypeA; // stealing the C syntax
typedef int TypeB;
必要なオーバーロードを行い、型システムに何が何であるかを追跡させることができます。特に、これにより、値が混同されていないことを確認できます。たとえば、関数から年として返された値は月の日として使用されません。
class
C#でこれを行う方法またはstruct
ラッパーが足りない方法はありますか?
このソリューションが float と double に対しても機能するとよいでしょう。