限定された範囲の「拡張子」を許可するコンストラクタ呼び出しが必要です。別の開発者は、彼が唯一そうのようなExtension
クラスからの値で行うことができますFoo
を使用したい場合は、だから、他のクラスの定数値を持つコンストラクタを呼び出す
public class Foo
{
public Foo(Extension ext)
{
// do something
}
}
public class Extension
{
public const string TXT = ".txt";
public const string XML = ".xml";
}
::のは、私はこれらの2つのクラスがあるとしましょう
Foo foo = new Foo(Extension.TXT);
しかししようこれを行うには、私はIDEエラーを言って:"cannot convert from 'string' to '<ProjectName>.Extension'
を取得します。
public class Extension
{
public enum File
{
TXT,
XML
}
}
をし、このようにそれを使用します:「回避策」として
私はこのような何かに私のExtension
クラスを変更する可能性が完全に正常に動作しますが、私は好きではない何
Foo foo = new Foo(Extension.File.TXT);
呼び出しが1レベル長く(class - > elementの代わりにclass - > enum - > element)あることです。
実際の唯一の有効な解決策は、私の回避策ですか?
は、クラスからNUMを削除し、それを作りますパブリック。 enum: 'new Foo(File.Txt);だけを呼び出します。 –