2013-10-09 120 views
-1

能否請你幫這條語句翻譯成C#翻譯的VBScript C#

if not ((sTieTocpi = "Y") or (sTieTocpi = "N")) then ... 

我讀一個Excel文件,這是一個驗證。該字段只能包含 Y或N,而不能包含任何其他字母。 Y或N有效,但其他字母無效。 如何在C#中編寫此代碼?

+3

這是一個提示,'not'變成'!','='變成'==','or'變成'||'。 –

+0

使用布爾變量。 – SLaks

+0

現在你有一個charomion問題 - 問一個新的問題。 –

回答

0
if (!((sTieTocpi == "Y") || (sTieTocpi == "N"))) 
{ 
    //Then 
} 

在C#or變得||=(用於比較,不分配)成爲==。通過圍繞整個語句並插入!運算符,布爾值被反轉。

5

您可以翻譯此爲:

if (!((sTieTocpi == "Y") || (sTieTocpi == "N"))) 
{ 
    // ... 

話雖這麼說,使用可變將使這個更具可讀性:

bool isYOrN = sTieTocpi == "Y" || sTieTocpi == "N"; 
if (!isYOrN) 
{ 
    //... 
+0

這是什麼語法?通常我會看到'variable = this == that?真案:假案件'。這相當於那個嗎? – tnw

+0

@tnw這只是直接分配一個布爾值。 「||」運算符直接返回布爾值:http://msdn.microsoft.com/en-us/library/6373h346.aspx –

+0

啊哈!現在我明白了,我正在閱讀那篇文章,並沒有完全理解它在這裏的結合方式。很酷。謝謝 – tnw

1
if ((sTieTocpi != "Y") && (sTieTocpi != "N")) 
{ 

} 
+1

你的意思是'&&'? – Marc

+0

@ user1 - 是的,謝謝,更新的答案。輸入太快。 :-) –

+0

你的parens已經關閉了。 – Servy

0
String sTieTocpi = "Y"; 
if(!((sTieTocpi == "Y") || (sTieTocpi == "N"))){ 

} 
-1
if (sTieTocpi != "Y" && sTieTocpi != "N") 
{ 
    //Do things 
} 

允許小寫值?

編輯; woops :)

+3

如果您要反轉邏輯,'||'必須是'&&'。否則你只是讓一切都進入。想想那個老謎語,「我手中有兩個硬幣總共30美分,其中一個不是四分之一」,你有鎳幣和四分之一,因爲鎳幣不是四分之一。 –

+0

謝謝Scott!在工作的漫長一天,沒有想到。 – sab669