【问题标题】:Enum.TryParse not supporting in vs2008 in c#Enum.TryParse 在 c# 中的 vs2008 中不支持
【发布时间】:2010-08-19 09:48:34
【问题描述】:

Enum.TryParse(,,out) 在 c# 中的 vs2008 中不支持?为什么?我正在尝试使用但出现 TryParse 未定义的错误。

【问题讨论】:

  • 可耻,可怜的你!编写代码需要 2-3 行。别抱怨了。
  • @leppie..!我不知道这种方法,所以我只是问这个问题。如果这对我来说是可耻的,并且如果您知道我必须编写的代码,那么请将代码行发送给我。我是 dotnet 的新手。
  • 请参阅我正在阅读有关方法的任何地方都没有提到我......我想快速回答,所以我来到这里请停止争论......!我不希望 MS 应该这样做。
  • @leppie:当使用 MSDN 库上的经典视图时,它会错误地告诉您 Enum.TryParse -- 以及许多其他新类型、方法等 -- 在3.5.
  • @Lalit:对不起,我看到了你感到困惑的帖子。现在给你一个赞成票,并反对你的问题来源;P

标签: c# enums tryparse


【解决方案1】:

Enum.TryParse 是在 .NET 4 中引入的。但是,您可能希望使用我的 Unconstrained Melody 库,它具有类似的功能以及许多其他功能。

【讨论】:

    【解决方案2】:
     public static bool TryParse<T>(this Enum theEnum, string valueToParse, out T returnValue)
     {
        returnValue = default(T);
        int intEnumValue;
        if (Int32.TryParse(valueToParse, out intEnumValue))
        {
            if (Enum.IsDefined(typeof(T), intEnumValue))
            {
               returnValue = (T)(object)intEnumValue;
               return true;
            }
        }
        return false;
      }
    

    【讨论】:

    • 根据他的另一个问题,我认为他想将枚举名称(字符串)解析为枚举而不是数字。
    【解决方案3】:

    根据MSDNEnum.TryParse 直到 .NET 4 才添加。VS2008 的目标最高为 .NET 3.5SP1,因此您无法访问此方法。

    【讨论】:

    • 感谢指导先生。如果我想在 3.5 中使用此功能(而不是方法),那么我必须做什么?
    • @Lalit:从迈克尔那里得到答案;)
    • @Kent:如果您像我一样使用 MSDN 文档中的经典视图,那么它会错误地告诉您 Enum.TryParse 在 3.5 中可用。
    • @LukeH ,但是如何使用它,如果它在 3.5 中支持
    • @Lalit:它支持 3.5 - 经典视图文档是错误的。 (如果我最初的评论具有误导性,我们深表歉意。)
    【解决方案4】:

    本题包含多种实现方式:How to TryParse for Enum value?

    【讨论】:

    • 谢谢这对我有用!
    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 2010-10-03
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2017-02-09
    • 2013-09-25
    相关资源
    最近更新 更多