Wie man c# ternärer operator für die return-Anweisung in Kombination mit anderen Anweisung
Ist es möglich, dies zu schreiben, if-Anweisung in der ternäre operator (Kurzform von c# ist)? wenn ja, was würde es sein?
if (condition)
{
return true;
}
else
{
int a = 2;
}
Danke alle im Voraus. Ich danke Ihnen sehr.
Sorry Leute wenn ich verwirrt Sie. Ich bin versucht, ternäre operator in dieser if -, else-block der Methode.
public static bool CompareDictionary(this Dictionary<Position, char>
dictionary1,
Dictionary<Position, char> dictionary2, out List<string> wordList)
{
string str = "";
wordList = new List<string>();
foreach (var dic1KeyVal in dictionary1)
{
Position d1key = dic1KeyVal.Key;
char d1Pos = dic1KeyVal.Value;
bool isFound = false;
foreach (var dic2KeyVal in dictionary2)
{
Position d2key = dic2KeyVal.Key;
char d2Pos = dic2KeyVal.Value;
if (d1Pos.Equals(d2Pos) && d1key == d2key)
{
isFound = true;
str = str + d1Pos.ToString();
}
}
if (isFound == false)
{
return false;
}
else
{
wordList.Add(str);
str = "";
}
}
return true;
}
- Nein, und da der ternäre operator wird verwendet, um return-Werte, und diese Werte muss einer Variablen zugewiesen werden. Also die return-Werte zurückgeben müssen vom gleichen Typ.
- Nein, das ist nicht möglich.
int a = 2;
in einem block von selbst tut auch nichts. Konnte Sie Bearbeiten in einem realen Beispiel, bitte? - wenn (isFound == false) { return false; } else { wordList.Add(str); str = ""; }
- Warum möchten Sie mit dem ternären operator hier? IMO gibt es Ihnen keine Vorteile mehr, wie der code geschrieben wird jetzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurze Antwort
Nicht.
Lange Antwort
Zunächst dieser code gar nicht brauchen, ein anderes:
und kann geschrieben werden als:
Nun für ternäre operator: Beide Bedingungen in ein ternärer operator muss das gleiche zurückgeben. Sie kann nicht zurückkehren, ein
bool
in einem Zustand und dann weisen Sie auf eine variable in einem anderen Zustand. Wenn Sie die überprüfung der Antwort auf eine Frage, zum Beispiel, wäre es so:Ob die Antwort korrekt ist oder nicht, kehren wir ein
bool
. Oder es könnte so sein:Aber nicht so:
Nicht. Der ternäre operator gibt nur einen von zwei möglichen Werten abhängig von einer Bedingung.
Was Sie tun können, mit dem ternären operator ist, z.B.
int a = condition ? 0 : 2
die weisen der variablea
Wert von entweder 0 oder 2 je nach dem Wert voncondition
.Gegeben, ein vollständigeres Beispiel von dem, was Sie beabsichtigen zu tun, jemand hier könnte möglicherweise eine schönere syntax.