Jestem nowy w składni C#. Pisałem następujące klasy (związanym kodzie dla masterpage mojej stronie internetowej):Pobierz i ustaw w C#
public partial class MasterPagePro : System.Web.UI.MasterPage
{
public String pageTitle
{
get
{
if (this.pageTitle == null)
return "";
else
return " - " + this.pageTitle;
}
}
}
Jednak przy próbie dostępu PageTitle jak to w html:
<title>MySite<%=pageTitle%></title>
pojawia się błąd stackoverflow. Patrząc na kod, jest całkiem jasne, że problem polega na tym, że metoda wywołuje się rekursywnie, ale nie wiem, co napisać, aby rozwiązać ten problem. Mógłbym zrobić coś w rodzaju:
public partial class MasterPagePro : System.Web.UI.MasterPage
{
private String _pageTitle
public String pageTitle
{
get
{
if (_pageTitle == null)
return "";
else
return " - " + _pageTitle;
}
set { _pageTitle = value; }
}
}
Ale wydaje się, że w ogóle nie ma się mowy z syntaktycznym skrótem. Jaki jest właściwy sposób na zrobienie tego?
Huh, rozumiem. Pomyślałem, że robienie tego w ten sposób pośrednio tworzy pole wsparcia gdzieś wzdłuż linii. – Oliver
@Oliver pola są tworzone niejawnie tylko w przypadku właściwości auto. –
Niekoniecznie chcesz, aby automatycznie generował pole w tle. Na przykład przy dziedziczeniu z interfejsu: 'bool SupportsSomeProperty {get {return true; }} ' – climbage