עזרה בתחביר C#
-
יש לי שורת קוד כזו:
var user = (UserDefinition)Authorization.UserDefinition;
ואז אני יכול להשתמש בערך:
user.ClientId
הבעיה שאני רוצה להשתמש בזה בשורה אחת, ללא משתנה.
וזה:(UserDefinition)Authorization.UserDefinition.Id
לא עובד.
כנראה בגלל שה (UserDefinition) חל על ה Id, וצריך שיחול על ה UserDefinition שלפניו.איך כותבים את זה?
חשבתי:
((UserDefinition)Authorization.UserDefinition).Id
אבל זה גם מחזיר שגיאה.
-
@WWW אמר בעזרה בתחביר C#:
אתה בטח צוחק עלי?
אבל מכיון שכבר הזכרת את שמי וכדי להציל אותך מחטא הזכרת שמי לשווא, כתבתי תוכנת נסיון, ונראה שהתחביר שהשתמשת אמור לעבוד.
עוד לא הסתדרת?
הנה תוכנת הנסיון:using System; namespace CastTest { interface IMyInterface { } class MyInterface : IMyInterface { public int I = 1; } class C { public IMyInterface mi = new MyInterface(); } class Program { static void Main(string[] args) { C c = new C(); // Console.WriteLine((c.mi).I); Error CS1061 'IMyInterface' does not contain a definition for 'I' Console.WriteLine(((MyInterface)c.mi).I); // עובד } } }
-
@yossiz אמר בעזרה בתחביר C#:
@WWW אמר בעזרה בתחביר C#:
ואז אני יכול להשתמש בערך:
user.ClientIdדרך אגב, כדי להשתמש בערך
user.ClientId
לכאורה אין צורך ב-cast. כנראה אתה משתמש במאפיינים נוספים שלUserDefinition
שלא הוגדרו ב-IUserDefinition
כן כן, ה Id היה רק להפשטה.