如果是这样,为什么你不能做到这一点:CLR是否支持静态接口?
public interface IParsable
{
static IParsable Parse(string s);
static bool TryParse(string s, out IParsable);
}
在C#中?
编辑:或者,也可以使用:
public interface IParseable<T>
{
static T Parse(string s);
static bool TryParse(string s, out T);
}
编辑#2: 我已经尝试使用IParsable得知我的方式的愚蠢,通过下面很多的建议。我做的例子如下。当然,没有办法解决TryParse的呼叫...
public IParsable ReadFromKeyboard()
{
IParsable ToReturn;
bool FirstTry = false;
bool Success;
do
{
if (!FirstTry)
DisplayError();
AskForInput();
Success = IParsable.TryParse(Console.ReadLine, out ToReturn);
FirstTry = false;
} while(!Success)
return ToReturn;
}
方法看起来像是需要一个IParsable参数吗? – dtb 2010-07-23 17:29:35