keyparamValueとparameterPathという名前の2つの文字列フィールドを持つconfigという名前のクラスがあります。
クラスのChooseTypeメソッドを適用すると、メソッドは異なるタイプ(IntまたはboolまたはString)で1つの変数paramValueを返す必要があります。
私はそれを次のように実装しました:
class ConfigValue
{
public string parameterPath;
private string paramValue;
public ConfigValue(string ParameterPath="empty",string ParamValue="empty")
{
this.parameterPath = ParameterPath;
this.paramValue = ParameterPath;
}
public enum RetType { RetInt=1, RetBool, RetString };
public T ChooseType<T>(RetType how)
{
{
switch(how)
{
case RetType.RetInt:
return int.Parse(string this.paramValue);
break;
case RetType.RetBool:
return Boolean.Parse(string this.paramValue);
break;
case RetType.RetString:
return this.paramValue;
break;
}
}
}
}
しかし、次の行のスイッチ演算子でエラーが発生します。
return int.Parse(string this.paramValue);
エラー:
ステートメントとして使用できるのは、代入、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみです。
return Boolean.Parse(string this.paramValue);
エラー:
無効な式の用語'文字列'。
return this.paramValue;
エラー:
タイプ「文字列」を「T」に暗黙的に変換することはできません。
なぜこれらのエラーが発生するのか、コードを修正するにはどうすればよいですか?