有没有一个通用的Parse()函数,将string转换为任何types使用parsing?
我想根据generics返回types将string转换为genericstypes,如int或date或long 。 
 基本上像Parse<T>(String)这样的函数返回一个Ttypes的项目。 
 例如,如果一个int被传递,函数应该在内部执行int.parse 。 
System.Convert.ChangeType
按照你的例子,你可以这样做:
 int i = (int)Convert.ChangeType("123", typeof(int)); DateTime dt = (DateTime)Convert.ChangeType("2009/12/12", typeof(DateTime)); 
为了满足您的“通用返回types”要求,您可以编写自己的扩展方法:
 public static T ChangeType<T>(this object obj) { return (T)Convert.ChangeType(obj, typeof(T)); } 
这将允许你做:
 int i = "123".ChangeType<int>(); 
  System.Convert.ChangeType不会转换为任何types。 想想以下几点: 
- 可空types
 - 枚举
 - 指导等
 
这种转换是可能的这种ChangeType的实现 。
.NET中有几个约定将一种types的对象转换为另一种types的对象。
- Convert.ChangeType如果types实现IConvertible
 - 如果types具有TypeConverterAttribute,则返回 TypeDescriptor.GetConverter
 
 但是这些方法比典型的T.Parse(string)慢得多,导致装箱,并且每次要转换单个值时都会涉及大量的分配。 
对于ValueString ,我select了使用reflection来寻找合适的静态typesparsing方法,构build一个调用它的lambdaexpression式并caching编译的委托以供将来使用(请参阅此答案的示例)。
如果types没有合适的parsing方法(参见自述文件中的性能部分) ,它也适用于我上面提到的方法。
 var v = new ValueString("15"); // struct var i = v.As<int>(); // Calls int.Parse. 
简单的方法来parsingstring。 所有数字types的variables都有一个内置的parsing函数。
例:
如果这是你的问题。
 Console.Write("enter meal price"); double mealprice = Console.Readline(); 
那么这是你的答案。
 Console.Write("enter meal price"); double mealprice =double.Parse( Console.Readline()); 
 也适用于int和其他人也…