私の意見では、あなたが求めるものを正確に取得する簡単な方法があります。つまり、次の構文が構文的に正しいことを確認することです。
get
{
if (partner == null)
{
return = "";
}
return partner;
}
その方法は、クラスに暗黙のキャスト演算子を提供することです。暗黙のキャスト演算子のおかげで、String.Empty または "" は Ansprechpartner 型に自動的にキャストできます。ゲッターに使用する sysntax は完全に合法です。
しかし、 暗黙のキャスト演算子とは何ですか? 「クラスにカスタム キャスト サポートを提供するにはどうすればよいですか?」という質問も見ることができます。詳細については。
ただし、クラスのコードを直接テストすることをお勧めします。正常にテストするために使用されるコードは次のとおりです。
private Ansprechpartner partner;
public virtual Ansprechpartner Partner
{
get
{
// legal assignment thanks to **public static implicit operator Ansprechpartner(string s)**
return partner ?? String.Empty;
}
set
{
partner = value;
}
}
また、逆も試みます: public static implicit operator string(Ansprechpartner a) のおかげで、空の文字列を Ansprechpartner インスタンス変数に割り当てることができることがわかります。
public void test_method()
{
Ansprechpartner s = String.Empty;
}
Ansprechpartner クラスでは、キャスト演算子を定義します
class Ansprechpartner
{
public static implicit operator Ansprechpartner(string s) {
// put your conversion logic here
// .. i.e: you can simply pass string s to a Ansprechpartner constructor
Ansprechpartner a = new Ansprechpartner();
return a;
}
public static implicit operator string(Ansprechpartner a)
{
if (a == null)
return "";
else
return a.ToString();
}
public Ansprechpartner()
{
}
public override string ToString()
{
return Value;
}
}
それだけです。何かが説明されていない場合は、コメントを残してください。