2011-10-07 6 views
5

나는 this question을 보았지만 ?? 연산자를 null 검사로 사용하면 bool true/false 테스트로 사용하고 싶습니다. C#에서파이썬 버전의 C#의 조건부 연산자 (?)

if self.trait == self.spouse.trait: 
    trait = self.trait 
else: 
    trait = defualtTrait 

내가이 같은 작성할 수 :

trait = this.trait == this.spouse.trait ? this.trait : defualtTrait; 

파이썬에서이 작업을 수행하는 비슷한 방법이 있나요

는 파이썬에서이 코드가?

+1

C#에서는? 연산자를 사용하십시오. –

+0

C#에서 당신은 ?? 연산자를 사용하십시오. 운영자. 그럼에도 불구하고, 당신의 코드가 작동하고, 당신이 그것을 이해한다면, 나는 이탈 할 어떤 이유도 보이지 않는다. 명백하고 명확합니다. 물론 몇 가지를 시연 한 것처럼 한 줄짜리로 바꿀 수는 있지만 그 결과는 사실 동일합니다. –

+0

@WinstonEwert 당신이 옳습니다. 내 실수. 다른 사람들에게 도움이되도록 내 질문을 편집하겠습니다. –

답변

10

예, 당신은 쓸 수 있습니다 : 이것은 파이썬에서 Conditional Expression라고

trait = self.trait if self.trait == self.spouse.trait else defaultTrait 

.

1

C#의 null 병합 연산자에서 질문에 대한 올바른 사용법이 아닙니다. 그것은 컴파일 시간에 실패합니다.

C#에서

, 올바른 방법이 될 것이라고하려고하는지 쓰기 :

trait = this.trait == this.spouse.trait ? self.trait : defaultTrait 

C#에서 널 유착 값의 체인에 널 (또는 경우 null이 아닌 첫 번째 값을 반환 null이 아닌 값은 없습니다). 예를 들어, C#에서 첫 번째 null이 아닌 특성이나 기본 특성을 반환하기 위해 작성하는 것은 실제로는 다음과 같습니다.

trait = this.spouse.trait ?? self.trait ?? defaultTrait; 
+0

맞아, 나는? : 조건 연산자를 생각하고 있었는데 ?? null 병합 연산자. 내 잘못이야. –