inheritance ו c#

אוריקס

New member
inheritance ו c#

קודם כל (כמו שגלעד רמז לי לעשות
) אני כותב console application.
#region Using directives using System; using System.Collections.Generic; using System.Text; #endregion namespace ConsoleApplication{ class Program{ static void Main(string[] args){ Point x = new Point("MyFirstPoint", 0, 0); //some code } } public class Point{ // some methods and properties.... } }​
וזה עובד יפה... עד שאני מוסיף את השורה הזאת:
public class dPoint:point{ }​
האם אני צריך איזה namespace מיוחד
 

pagis

New member
קודם תפסיק לכתוב כמו תוכניתן ג'אווה

מה זה הסוגריים המסולסלים האלה שתקועים באותה שורה כמו ההכרזה? אם יש לך הרגלים מגונים זה לא אומר שאתה צריך להראות אותם ברחוב! חוץ מזה, שים לב שקיימת מחלקה ב SYSTEM בשם POINT. שים לב שהמחלקה היורשת נמצאת בתוך ה NAMESPACE של המחלקה אותה אתה יורש ואם היא מחוץ אז תציין PATH מלא.
 

אוריקס

New member
../images/Emo26.gif

אני גאה לכתוב כמו תוכניתן ג'אווה, ואני שונא סקופים בשורה חדשה... כל מאמר שכתוב ככה אני פשוט מפסיק לקרוא, אני פשוט לא יכול עם זה. דבר שני, אני די רק מתחיל עם זה, ולא הבנתי בכלל את מה שכתבת לי
 

אוריקס

New member
המממ

Error 2 No overload for method 'Point' takes '0' arguments C:\Documents and Settings\Administrator\Local Settings\Application Data\Temporary Projects\ConsoleApplication1\Program.cs 45 17​
 

gilad g

New member
זאת שגיאה

שנגרמת כתוצאה מכך שלא נתת לו כמות מתאימה של פרמטרים לקונסטרטור של Point. הקומפיילר כנראה מתבלבל בין System.Point ל-Point שלך.. תנסה למצוא שם אחר לקלאס שלך
 

gilad g

New member
#C לא השתנתה הרבה..

אתה יכול להעלות לפה את הקוד המלא, אחרי השינוי, ולומר באיזו שורה נמצאת השגיאה
 

אוריקס

New member
אוקיי, כתבתי קוד חדש ויותר קצת

(עדיין אותה שגיאה)...
using System; namespace ChainInheritance{ public class Employee{ public string name; public int age; public Employee(string strName, int intAge){ this.name = strName; this.age = intAge; } public string ToString(){ return ("Name: " + this.name + " Age: " + this.age); } } public class Programmer : Employee{ public Boolean knowsDotNet; public Programmer(){ this.knowsDotNet = false; } } public class x{ static void Main(string[] args){ Console.WriteLine("Hello World!!!"); Employee x = new Employee("Urix", 17); Console.ReadLine(); } } }​
השגיאה היא על השורה:
public Programmer(){​
אולי זה קשור לזה שאין קריאה לקונסטרקטור של מחלקת העל
 

אוריקס

New member
אוקיי, נפתר:

public Programmer(string strName, int intAge, bool bolKnowsDotNet):base(strName,intAge)​
 

gilad g

New member
זה אותו דבר.

ב-#C (ובשפות אחרות) יש aliases ל-type-ים של דוט נט. כשאתה כותב string הוא בעצם מתרגם את זה ל-System.String (שזה בעצם String אם עשית using System). int הופך ל-System.Int32. float הופך ל-System.Single. bool הופך ל-System.Boolean. וכו'
 

אוריקס

New member
ועוד שאלה קטנה:

אילו מרחבי שמות אני צריך לייבא ובכלל מה אני צריך לכתוב בראש העמוד בשביל לכתוב מחלקות בתוך עמוד ה ASPX שלי
 

אוריקס

New member
לא נראה לי שהבנת אותי....

בשביל לכתוב קטע קוד כזה בתוך דף ה ASPX, מה אני צריך:
public class x{ public x{ } public string SayHello(){ return("Hello World!!!"); } } x obj = new x(); Response.write(obj.SayHello());​
 
למעלה