שאלה בקשר ל C#

oketz1

New member
שאלה בקשר ל C#

לא מובן לי מדוע אני יכול לאתחל משתנה private בקוד הבא : p.x =3 מבלי שהקומפיילר צועק ?? הקוד להלן:
using System; namespace rectangleGame { /// <summary> /// Summary description for Class1. /// </summary> class point { int x, y; // Default constructor: public point() { x = 0; y = 0; } // A constructor with two arguments: public point(int x, int y) { this.x = x; this.y = y; } // Override the ToString method: public override string ToString() { return(String.Format("({0},{1})", x, y)); } /// <summary> /// The main entry point for the application. /// </summary> static void Main(string[] args) { point p1 = new point(3,2); p1.x = 3; } } }​
 

melatonin

New member
אני לא מכיר C#

אבל זה כנראה בגלל שאתה פונה למשתנה private מתוך פונקצייה שנמצאת באותו ה class
 

VoidPointer

New member
דעתי

ב DEFAULT , השדה מוגדר כ private , אך במקרה הזה , MAIN נמצאת באותו CLASS - ב CLASS Point , ולכן היא יכולה לגשת לשדה X . עדיף לעשות CLASS מיוחד שיכיל את MAIN (ואולי כל מיני דברים שקשורים לרמת האפליקציה) ואת שאר הדברים לשים ב CLASS-ים אחרים .
 

oketz1

New member
צודק במאה אחוז

עד עכשיו פשוט הייתי מתכנת בשפות C C++ ובשפה OOP כמו C++ אין main בקלאס וזה מבלבל כי שם ה main לא יכול לגעת במשתנים פרטיים של קלאס אבל בC# אם הmain הוא באותו קלאס אז אין כל בעיה. שוב תודה, עוקץ
 
למעלה