2016-10-18 52 views
0

在我們的項目之一,我們有這樣的事情:只有通過額外的參數,如果他們不爲空

DirectoryEntry directoryEntry; 
if (user == "" && password == "") 
    directoryEntry = new DirectoryEntry(path); 
else 
    directoryEntry = new DirectoryEntry(path, user, password); 

我想知道是否有這樣做的1行的聲明的可能性。我知道這兩種方法的工作方式不同。但是,是否可以檢查括號內的條件並讓編譯器決定採取哪種方法。我想的是這樣的:

DirectoryEntry directoryEntry = 
    new DirectoryEntry(path, (user == "" && password == "") ? user, password : [nothing]); 

回答

2

爲什麼你不使用它,喜歡嗎?

DirectoryEntry directoryEntry = new DirectoryEntry(path); 
if (user != "" && password != "") 
{ 
    directoryEntry.Username = user; 
    directoryEntry.Password = password; 
} 

鏈接
Username
Password

+0

好的一個你只應該取代你的條件if if(user!=「」|| password!=「」) – fubo

+0

:O我的壞!沒有看到:( – gmetax

1

如何

DirectoryEntry directoryEntry = (user == "" && password == "") ? new DirectoryEntry(path) : new DirectoryEntry(path, user, password); 
+0

這將是我已經想到的一種方式。我只是想知道是否可以在括號內進行。 –

-2

這將工作。

DirectoryEntry directoryEntry = (user == "" && password == "") ? new DirectoryEntry(path) : new DirectoryEntry(path, user, password); 
+0

這就是fubo已經提出的建議,我知道我可以這樣做,但我想知道我是否可以在括號內做到這一點。 –

相關問題