我遇到了使用Enum.TryParse的时候并不期待的行为。 如果我有一个枚举: public enum MyEnum { ValueA, ValueB, ValueC } 然后我将一个数值(作为一个string)传递给Enum.TryParse,如下所示: MyEnum outputEnum; bool result = Enum.TryParse("1234", out outputEnum); 尽pipestring“1234”不是一个可能的值,结果将返回为true,并且我的outputEnum将具有值1234。 有没有办法可以避免这种行为? 我试图写一个函数,将处理任意stringinput作为一个枚举,这在我的坏input检测中抛出了一点monkeywrench。
UPDATE Guid.TryParse在.NET 4.0中可用 END UPDATE .NET CLR 2.0中显然没有公共的GUID.TryParse()。 所以,我正在研究正则expression式(又名googling来find一个),每次我发现一个关于RegEx A的注释部分有一个激烈的争论,使用正则expression式B.然后有人会写正则expression式C yadda yadda 所以无论如何,我决定要做的是这件事,但是我感觉不好。 public static bool IsGuid (string possibleGuid) { try { Guid gid = new Guid(possibleGuid); return true; } catch (Exception ex) { return false; } } 显然我不太喜欢这个,因为自从第一天就开始钻入我的行列,以避免抛出exception,如果你可以防守的话。 有谁知道为什么在.NET Framework中没有公共的Guid.TryParse()? 有没有人有一个真正的正则expression式,将适用于所有的GUID?
我经常使用Request.QueryString[]variables。 在我的Page_load我经常做这样的事情: int id = -1; if (Request.QueryString["id"] != null) { try { id = int.Parse(Request.QueryString["id"]); } catch { // deal with it } } DoSomethingSpectacularNow(id); 这一切似乎有点笨重和垃圾。 你如何处理你的Request.QueryString[] ?
我以string格式“2011-29-01 12:00 am”有以下date。 现在我试图用下面的代码将它转换为datetime格式: DateTime.TryParse(dateTime, out dt); 但我总是把dt当成{1/1/0001 12:00:00 AM},你能告诉我为什么吗? 以及如何将该string转换为date。 编辑:我刚才看到大家提到使用格式参数。 我现在要提到,我不能使用格式参数,因为我有一些设置来select用户想要的自定义date格式,并基于该用户能够通过jQuery datepicker自动获取该格式的文本date。
我知道…我知道…performance不是这里主要关心的,但只是为了好奇,有什么更好的? bool parsed = int.TryParse(string, out num); if (parsed) … 要么 try { int.Parse(string); } catch () { do something… }
我想创build一个通用的扩展使用TryParse来检查一个string是否是给定的types: public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); } 这将不会编译,因为它不能解决符号'TryParse' 据我所知,“TryParse”不是任何接口的一部分。 这是可能做到的吗? 更新: 使用下面的答案我已经想出了: public static bool Is<T>(this string input) { try { TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input); } catch { return false; } return true; } 它工作得很好,但我认为以这种方式使用exception并不适合我。 UPDATE2: 修改为传递types而不是使用generics: public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return […]
Parse()和TryParse()有什么区别? int number = int.Parse(textBoxNumber.Text); // The Try-Parse Method int.TryParse(textBoxNumber.Text, out number); 是否有一些forms的错误检查像Try-Catch块?
我有一个string格式化的date和时间 : "2011-03-21 13:26" //year-month-day hour:minute 我怎样才能parsing到System.DateTime ? 如果可能的话,我想使用DateTime.Parse()或DateTime.ParseExact()等函数,以便能够手动指定date的格式。