C# ban ez mit jelent?
myVar1 = mayVar2 = true
Egyszerűen mindkét változó a true értéket kapja, vagy történik valami susmus a myVar1 és myVar2 között?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Igen, kb. ahogy az első válaszoló írja. Picit pontosabban:
A myVar2 a típusától függően felveszi vagy a true értéket, vagy ha van a saját típusában implicit konverziós operátor bool-ról a saját típusára, akkor ez által a függvény által visszaadott értéket (objektumot).
Utána a myVar2-t adja értékül (vagy implicit konvertálja) myVar1-nek.
Szóval a myVar1 és myVar2 nem feltétlenül bool. Sőt, az is lehet, hogy a myVar1-nek nem is lehet bool értéket adni közvetlenül, pl:
static void Main(string[] args)
{
MyClass1 myVar2;
MyClass2 myVar1;
myVar1 = true; // compile error: Cannot implicitly convert bool to MyClass2
myVar1 = myVar2 = true; // ok
}
class MyClass1
{
public int Prop1 { get; set; }
public static implicit operator MyClass1(bool b)
{
return new MyClass1 {Prop1 = b ? 1 : 2};
}
}
class MyClass2
{
public int Prop2 { get; set; }
public static implicit operator MyClass2(MyClass1 c)
{
return new MyClass2 { Prop2 = c.Prop1 * 10 };
}
}
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!