עזרה בתחביר C#
-
יש לי שורת קוד כזו:
var user = (UserDefinition)Authorization.UserDefinition;ואז אני יכול להשתמש בערך:
user.ClientIdהבעיה שאני רוצה להשתמש בזה בשורה אחת, ללא משתנה.
וזה:(UserDefinition)Authorization.UserDefinition.Idלא עובד.
כנראה בגלל שה (UserDefinition) חל על ה Id, וצריך שיחול על ה UserDefinition שלפניו.איך כותבים את זה?
חשבתי:
((UserDefinition)Authorization.UserDefinition).Idאבל זה גם מחזיר שגיאה.
-
יש לי שורת קוד כזו:
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); // עובד } } } -
יש לי שורת קוד כזו:
var user = (UserDefinition)Authorization.UserDefinition;ואז אני יכול להשתמש בערך:
user.ClientIdהבעיה שאני רוצה להשתמש בזה בשורה אחת, ללא משתנה.
וזה:(UserDefinition)Authorization.UserDefinition.Idלא עובד.
כנראה בגלל שה (UserDefinition) חל על ה Id, וצריך שיחול על ה UserDefinition שלפניו.איך כותבים את זה?
חשבתי:
((UserDefinition)Authorization.UserDefinition).Idאבל זה גם מחזיר שגיאה.
-
@WWW אמר בעזרה בתחביר C#:
ואז אני יכול להשתמש בערך:
user.ClientIdדרך אגב, כדי להשתמש בערך
user.ClientIdלכאורה אין צורך ב-cast. כנראה אתה משתמש במאפיינים נוספים שלUserDefinitionשלא הוגדרו ב-IUserDefinition -
@WWW אמר בעזרה בתחביר C#:
ואז אני יכול להשתמש בערך:
user.ClientIdדרך אגב, כדי להשתמש בערך
user.ClientIdלכאורה אין צורך ב-cast. כנראה אתה משתמש במאפיינים נוספים שלUserDefinitionשלא הוגדרו ב-IUserDefinition@yossiz אמר בעזרה בתחביר C#:
@WWW אמר בעזרה בתחביר C#:
ואז אני יכול להשתמש בערך:
user.ClientIdדרך אגב, כדי להשתמש בערך
user.ClientIdלכאורה אין צורך ב-cast. כנראה אתה משתמש במאפיינים נוספים שלUserDefinitionשלא הוגדרו ב-IUserDefinitionכן כן, ה Id היה רק להפשטה.
-
אחרי התגובה של @yossiz אני רואה שכבר ניסית את מה שהצעתי.
וכפי שהוא אמר זה בודאי עובד.
תגיד מה השגיאה שאתה מקבל (תוכל להעתיק למטה בerror list). -
אתה מעביר את הביטוי הזה לאטריביוט (כעת אני מבין למה ניסית לחסוך את המשתנה).
והשגיאה הזו אומרת שהערך שאטריביוט מקבל חייב להיות "קבוע" - ליטרל או כל ערך שידוע בזמן קומפילציה.
