2011-11-16 18 views
6

Bir ifade sorgusu oluştururken bir ifade için kısa bir el için çalışıyorum ve testin boş olması durumunda erişimci bir hataya neden oluyor. Ben arıyorumKısa el Başka ifade olmadan

test != null ? test.Contains("mystring") : NO_VLAUE 

:

test != null ? test.Contains("mystring") 

otherwise ignore. 

ben is null için ?? kullanabilirsiniz ancak ters olduğunu biliyorum.

Şimdiden teşekkürler.

+0

Boş dize belki? –

cevap

8

Bu mantıklı değil istedi gibi test != null && test.Contains("mystring")

Sorunuz istiyorum benziyor. Koşullu operatör de dahil olmak üzere tüm ifadelerin bir değeri olmalıdır. test'un null olup olmadığını değerlendirmek için bu ifadeyi ne bekliyorsunuz?

Test boşsa, muhtemelen yanlış olmasını istersiniz.
Başka bir deyişle, sınama boş değilse ve mystring içeriyorsa, bunun doğru olmasını istersiniz.

7

Bu gibi geliyor size olabilir Talep:

test != null && test.Contains("mystring") 

boş falsetest eğer değerlendirecek - İstediğin bu nedir? Temel olarak, test boşsa ne yapmak istediğinizi söylemeniz gerekir, aksi halde bir ifade olarak kullanılamaz.