如果可以的话,为什么不能这样做呢:
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;
}