עבור לתוכן

איך יוצרים/משתמשים במחללקות-C#

Featured Replies

פורסם

זה תרגיל מספר אז תיכנסו כאן לפרק 3 עמודים 65-66.

עשיתי את החצי הראשון של חלק א (עשיתי את המחלקה point)

אבל נתקעתי בהמשך, במחלקה TESTPOINT : אני צריך להשתמש בפעולות של המחלקה POINT , אבל זה לא מזהה אותם.

איך מסדרים את זה??

בנוסף הבנתי שצריך לשמור מחלקה עם סיומת .CS אז איך אני עושה את זה? אני לוחץ על save all ואז במקום של השם אני רושם point.cs??

תודה רבה לכל העוזרים. :xyxthumbs:

פורסם

תערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

איך יצרת את הפרוייקט שלך?

איך אתה מוסיף מחלקות חדשות?

בעקרון נהוג שכל מחלקה יושבת בקובץ משלה, ששמו זהה לשם המחלקה (כלומר, המחלקה TestPoint צריכה לשבת בקובץ בשם TestPoint.cs). תחת תפריט File>New>File אתה יכול להוסיף קובץ חדש, או כפתור ימני על הפרוייקט ומשם Add > New Item. אני מניח שבתרגיל מצפים ממך ששתי המחלקות הללו ישבו בתוך אותו פרויקט.

פורסם
  • מחבר

תערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

איך יצרת את הפרוייקט שלך?

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

אני מניח שבתרגיל מצפים ממך ששתי המחלקות הללו ישבו בתוך אותו פרויקט. הם אמרו לי לשמור את המחלקה TESTPOINT בקובץ TESTPOINS.CS אז לא נראה לי שזה צריך להיות באותו פרוייקט

[

תודה על העזרה גבר :xyxthumbs:

פורסם

הם אמרו לי לשמור את המחלקה TESTPOINT בקובץ TESTPOINS.CS אז לא נראה לי שזה צריך להיות באותו פרוייקט

למה לא?

ואני אבקש שוב:

תערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

פורסם
  • מחבר

ככה כתבתי את המחלקה. ככה זה אמור להיות??

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Unit3
{

public class Point
{
private double x;
private double y;

public Point(double x, double y)
{
this.x = x;
this.y = y;
}
public double getx()
{
return this.x;
}
public double gety()
{
return this.y;
}
public void setx(double x)
{
this.x = x;
}
public void sety(double y)
{
this.y = y;
}
public string ToString()
{
string str = " " + this.x + this.y;
return str;
}
}


}

פורסם

תמשיך את התרגיל ותדע... (המחלקה TestPoint אמורה לבדוק אם מה שכתבת נכון)

פורסם
  • מחבר

המשכתי. לא הבנתי איך אני מפעיל את זה.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Unit3
{

public class Point
{
private double x;
private double y;

public Point(double x, double y)
{
this.x = x;
this.y = y;
}
public double getx()
{
return this.x;
}
public double gety()
{
return this.y;
}
public void setx(double x)
{
this.x = x;
}
public void sety(double y)
{
this.y = y;
}
public string ToString()
{
string str = " " + this.x + this.y;
return str;
}
}



}

public class TestPoint
{
public double Main()
{
Point x = new point(43, 7);
Point y = new point(5, 5);
int z = 0;
return x;
return y;
z = x.getx;
x.setx = y.getx;
y.setx = z;
return x;
return y;

}

}



פורסם

א. לא ככה צריכה להיראות פונקציית Main. אם אתה לא יודע איך אמורה להיראות פונקציית Main, אז תחזור אחורה בספר.

ב. לא מדפיסים באמצעות return. למעשה, בספר כתוב לך בדיוק איך אתה אמור להדפיס.

פורסם
  • מחבר

עשיתי את זה וזה עובד



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class Point
{
private double x;
private double y;

public Point(double x, double y)
{
this.x = x;
this.y = y;
}
public double getx()
{
return this.x;
}
public double gety()
{
return this.y;
}
public void setx(double x)
{
this.x = x;
}
public void sety(double y)
{
this.y = y;
}
public override string ToString()
{
string str = " " + this.x +","+ this.y;
return str;
}
}


namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Point a = new Point(43, 7);
Point b = new Point(5, 5);
double z = 0;
Console.WriteLine(a);
Console.WriteLine(b);
z = a.getx();
a.setx (b.getx());
b.setx (z);
Console.WriteLine(a);
Console.WriteLine(b);
}
}
}

אבל לא ניראה לי שזה צריך להיות ככה.לא נראה לי שאני אמור לכתוב את כל המחלקה POINT בהתחלה, אני אמור איכשו לייבא אותה. אני אני עושה את זה?

פורסם

כמו שהסברתי לך מקודם - אתה צריך להוסיף קובץ חדש לפרוייקט (מומלץ לקרוא לו Point.cs) ולשים בו את המחלקה.

לא ראית את הלינק ל"מדריך טכני להתקנה ושימוש ב-C# Express" שיש בסוף העמוד שקישרת אליו?

פורסם
  • מחבר

עשיתי את זה, אבל כדי להשתמש במחלקה POINT אני צריך לייבא אותה ע"י כתיבה בראש התוכנית : using.namespace.class

ובנוסף להוסיף הפניה למרחב השמות דרך : projects< add referance

הבעיה שאין לי מושג איזה קובץ אני צריך להוסיף.

בשאלות הקודמות שעשיתי, כותבי הספר עשו את המחלקות ואני הייתי צריך להוסף את ההפניה למרחב השמות , קובץ עם סיומת dll

אז יש לך מושג מה אני עושה עכשיו??

פורסם

אם המחלקה יושבת באותו פרוייקט כמו ה-Main, אז לא צריך לעשות שום add reference. לא ברור לי איך הגעת לזה בכלל. ואם לא שינית במיוחד את ה-Namespace שבו יושבת המחלקה, אז היא תשב באותו Namespace כמו של כל שאר המחלקות בפרוייקט, ככה שגם לא צריך לעשות using.

יעזור אם תעשה את הדברים הבאים:

א. קרא את המדריך הטכני שבסוף הדף שקישרת אליו.

ב. תמחק את הפרוייקט, תתחיל אותו מהתחלה. דאג שכל המחלקות שלך ישבו באותו פרוייקט (כלומר - כשאתה רוצה להוסיף מחלקה חדשה, תוסיף קובץ חדש לתוך הפרוייקט, אל תיצור פרוייקט חדש).

ג. אם אתה עדיין לא מסתדר, תסביר צעד אחר צעד, באופן ברור, מה בדיוק עשית, ואפילו יעזור אם תעלה תצלום מסך של ה-Visual Studio שלך.

פורסם
  • מחבר

תודה גבר, הבנתי הכל :xyxthumbs: .

וסליחה שנפלתי עלייך ככה...

  • 2 שבועות מאוחר יותר...
פורסם

ד"א , אין צורך בפונקציות getx למשל , עושים את זה ככה :

private int x;

public int X

{

get {return x;}

set {x = value;}

}

אם זה C# 4 אז אפשר לעשות אפילו משהו יותר יפה :

public int x {get;set;}

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים