C # 7.3 Enum 제약 조건 : nullable enum을 사용할 수없는 이유는 무엇입니까?

Kirill Kovalenko 05/15/2018. 2 answers, 1.910 views
c# enums roslyn c#-7.3

이제 열거 형 제약 조건이있어서 컴파일러가이 코드를 작성할 수없는 이유는 무엇입니까?

public static TResult? ToEnum(this String value, TResult? defaultValue)
    where TResult : Enum
{
    return String.IsNullOrEmpty(value) ? defaultValue : (TResult?)Enum.Parse(typeof(TResult), value);
} 

컴파일러는 말한다 :

오류 CS0453 유형 'TResult'은 제네릭 유형 또는 메소드 'Nullable'에서 매개 변수 'T'로 사용하려면 nullable 값 유형이 아니어야합니다.

2 Answers


Patrick Hofman 05/15/2018.

하지만 제약 조건 인 struct 제약 조건을 추가해야합니다.

public static void DoSomething(T? defaultValue) where T : struct, Enum
{
} 

mjwills 05/15/2018.

System.Enum 은 클래스이기 때문에 Nullable 유형의 변수를 선언 할 수 없습니다 ( NullableTstruct 경우에만 가능하기 때문에).

그러므로:

Enum? bob = null; 

컴파일되지 않으며 코드도 마찬가지입니다.

이것은 분명히 이상합니다. ( Enum 자체는 클래스이므로 코드에서 정의하는 특정 Enumstruct ) 이전에는 실행하지 않았지만 명확하게 class ( struct 아님) 인 경우 docs 및 소스 코드.


HighResolutionMusic.com - Download Hi-Res Songs

1 (G)I-DLE

POP/STARS flac

(G)I-DLE. 2018. Writer: Riot Music Team;Harloe.
2 Ariana Grande

​Thank U, Next flac

Ariana Grande. 2018. Writer: Crazy Mike;Scootie;Victoria Monét;Tayla Parx;TBHits;Ariana Grande.
3 Imagine Dragons

Bad Liar flac

Imagine Dragons. 2018. Writer: Jorgen Odegard;Daniel Platzman;Ben McKee;Wayne Sermon;Aja Volkman;Dan Reynolds.
4 Clean Bandit

Baby flac

Clean Bandit. 2018. Writer: Jack Patterson;Kamille;Jason Evigan;Matthew Knott;Marina;Luis Fonsi.
5 Backstreet Boys

Chances flac

Backstreet Boys. 2018.
6 BTS

Waste It On Me flac

BTS. 2018. Writer: Steve Aoki;Jeff Halavacs;Ryan Ogren;Michael Gazzo;Nate Cyphert;Sean Foreman;RM.
7 Fitz And The Tantrums

HandClap flac

Fitz And The Tantrums. 2017. Writer: Fitz And The Tantrums;Eric Frederic;Sam Hollander.
8 BlackPink

Kiss And Make Up flac

BlackPink. 2018. Writer: Soke;Kny Factory;Billboard;Chelcee Grimes;Teddy Park;Marc Vincent;Dua Lipa.
9 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.
10 Diplo

Close To Me flac

Diplo. 2018. Writer: Ellie Goulding;Savan Kotecha;Peter Svensson;Ilya;Swae Lee;Diplo.
11 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
12 Imagine Dragons

Machine flac

Imagine Dragons. 2018. Writer: Wayne Sermon;Daniel Platzman;Dan Reynolds;Ben McKee;Alex Da Kid.
13 Little Mix

The Cure flac

Little Mix. 2018. Writer: Pete Kelleher;Camille Purcell;Tom Barnes;Ben Kohn.
14 Bradley Cooper

Always Remember Us This Way flac

Bradley Cooper. 2018. Writer: Lady Gaga;Dave Cobb.
15 Calum Scott

No Matter What flac

Calum Scott. 2018. Writer: Toby Gad;Calum Scott.
16 Frida Sundemo

Apologize flac

Frida Sundemo. 2018.
17 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
18 Kelly Clarkson

Never Enough flac

Kelly Clarkson. 2018. Writer: Benj Pasek;Justin Paul.
19 Ashley Tisdale

Voices In My Head flac

Ashley Tisdale. 2018. Writer: John Feldmann;Ashley Tisdale.
20 Haley Reinhart

Something Strange flac

Haley Reinhart. 2018.

Related questions

Hot questions

Language

Popular Tags