如果是这样,为什么你不能这样做:
public interface IParsable
{
static IParsable Parse(string s);
static bool TryParse(string s, out IParsable);
}
Run Code Online (Sandbox Code Playgroud)
在C#?
编辑:或者,或者:
public interface IParseable<T>
{
static T Parse(string s);
static bool TryParse(string s, out T);
}
Run Code Online (Sandbox Code Playgroud)
编辑#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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |