Objektfeld als Funktionsparameter verwenden anderes Feld [duplizieren]
Jan 03 2021
Ist es möglich, ein neues Objektfeld als Funktionsparameter eines anderen Feldes zu verwenden (in derselben Objektinitialisierung)?
List<Reservations> reservations = new List<Reservations>()
{
new Reservations{title="Grooming", className=checkColor(title)},
};
public string checkColor(string title)
{
...
}
Antworten
Sisir Jan 03 2021 at 00:56
Mit dem aktuellen Design Ihres Codes ist dies nicht möglich. Der Grund dafür ist, dass Sie nicht auf ein Feld des Objekts in einem anderen Feld verweisen können, bevor das Objekt vollständig erstellt wurde. Das ist der gleiche Grund, warum wir nicht 1 Feldwert in einem anderen verwenden können, während wir als Varibales auf Klassenebene deklarieren.
Es gibt jedoch Möglichkeiten, wie Sie erreichen können, was Sie wollen.
Option 1:
const string titleText = "Grooming";
List<Reservations> reservations = new List<Reservations>()
{
new Reservations{title=titleText, className=checkColor(titleText)},
};
private static string checkColor(string title)
{
...
}
Option 2:
class Consumer
{
List<Reservations> reservations = new List<Reservations>()
{
new Reservations{title="Grooming"}
};
}
class Reservations
{
string _title;
public string title
{
get
{
return _title;
}
set
{
_title = value;
className = checkColor(title);
}
}
public string className;
private string checkColor(string title)
{
return "";
}
}