9

enum以下を実装しました。

public enum CaseOriginCode
{
    Web = 0,
    Email = 1,
    Telefoon = 2
}

enum intで値を取得したいと思いstringます。このようなもの:

public void setCaseOriginCode(string caseOriginCodeParam)
{
    int caseOriginCode = CaseOriginCode.GetEnumByString(caseOriginCodeParam);
    // do something with this integer
}

したがって、入力は文字列で、出力は int である必要があります。

または、キー値を持つ辞書を実装する方が良いですか。キーは文字列、 は int になります。

4

3 に答える 3

0

注意すべきことの 1 つは、キャスト後に の結果が得られる場合は0、 の値を指定しなかったことが原因である可能性がありますenum

たとえば、次のように変更します。

public enum AcquisitionChannel
{
    Referal,
    SearchEngines,
    SocialMedia
}

public enum AcquisitionChannel
{
    Referral = 1,
    SearchEngines = 2,
    SocialMedia = 3
}
于 2020-06-25T19:14:09.353 に答える
-2

この質問を正しく理解していれば、スイッチケースを使用しないのはなぜですか?

public CaseOriginCode setCaseOriginCode(string caseOriginCodeParam)
{
    switch(caseOriginCodeParam)
    {
        case "Web":
            return CaseOriginCode.Web;
        case "Email":
            return CaseOriginCode.Email;
        case "Telefoon":
            return CaseOriginCode.Telefoon;
        default:
            return default(CaseOriginCode);
    }
}

したがって、実際には次のようになります...

int x = (int)setCaseOriginCode("Web"); // output would be 0
CaseOriginCode y = setCaseOriginCode("Email"); // output would be CaseOriginCode.Email
于 2013-06-03T07:42:07.600 に答える