ב C# מה בדיוק ההבדל אם אני שם static לפני פונקציה או שאני לא שם static. מה תפקידו של ה static?
A adventureboy New member 4/9/03 #1 ב C# מה בדיוק ההבדל אם אני שם static לפני פונקציה או שאני לא שם static. מה תפקידו של ה static?
Y yuval k New member 4/9/03 #2 static modifier שמגדיר שמשתנה או מתודה מסויימים שייכים למחלקה שמגדירה אותם, ולא למופע של המחלקה. לא קוראים להם מתוך מופע, אלא מתוך הסוג, למשל אם X הוא משתנה סטאטי ששייך לקלאס C, ו-I הוא מופע של C, לא ניגשים ל-X ע"י I.X אלא ע"י C.X. זו המשמעות.
static modifier שמגדיר שמשתנה או מתודה מסויימים שייכים למחלקה שמגדירה אותם, ולא למופע של המחלקה. לא קוראים להם מתוך מופע, אלא מתוך הסוג, למשל אם X הוא משתנה סטאטי ששייך לקלאס C, ו-I הוא מופע של C, לא ניגשים ל-X ע"י I.X אלא ע"י C.X. זו המשמעות.
G gilad g New member 4/9/03 #3 static אומר שניתן להפעיל מתודה שנמצאת בתוך קלאס גם אם לא יצרנו אינסטנס של הקלאס. לדוגמא: public class myClass { public method M() { } } ... //אנחנו חייבים ליצור אינסטנס, כלומר מופע, ולכן נקרא למתודה כך myClass c = new myClass(); c.M();במקרה שבו משתמשים ב-static: public class myClass { public static method M() { } } ... //המתודה סטטית, לכן לא חייבים ליצור מופע. הקריאה תהיה באופן הזה: myClass.M();יש לציין, שכשמתודה היא סטטית, אין לה גישה לשאר החברים הלא-סטטיים של המחלקה
static אומר שניתן להפעיל מתודה שנמצאת בתוך קלאס גם אם לא יצרנו אינסטנס של הקלאס. לדוגמא: public class myClass { public method M() { } } ... //אנחנו חייבים ליצור אינסטנס, כלומר מופע, ולכן נקרא למתודה כך myClass c = new myClass(); c.M();במקרה שבו משתמשים ב-static: public class myClass { public static method M() { } } ... //המתודה סטטית, לכן לא חייבים ליצור מופע. הקריאה תהיה באופן הזה: myClass.M();יש לציין, שכשמתודה היא סטטית, אין לה גישה לשאר החברים הלא-סטטיים של המחלקה