PDA

View Full Version : سوال در مورد کلمه کلید base : در سی شارپ



mehran6764
یک شنبه 06 اسفند 1391, 19:29 عصر
من الان یه ساعته زوم کردم رو این موضوع که کلمه کلیدی base چی کار می کنه ، فکر می کنم یعنی اینکه هر کلاس (( پایه ای )) اساسی ترین متد رو داره که بصورت پیش فرض در کلاس مشتق شده هم هست : (( اجازه بدین مثال رو هم قرار بدم )) موضوع دیگه ای که گیجم کرده اینکه تو سایت مایکروسافت کلمه کلیدی base تو کلاس مشتق شده اس نه کلاس پایه

کدهای کلاس پایه



1 // Fig. 9.13: Circle4.cs
2 // Circle4 class that inherits from class Point3.
34
using System;
56
// Circle4 class definition inherits from Point3
7 public class Circle4 : Point3
8 {
9 private double radius;
10
11 // default constructor
12 public Circle4()
13 {
14 // implicit call to Point constructor occurs here
15 }
16
17 // constructor
18 public Circle4( int xValue, int yValue, double radiusValue )
19 : base( xValue, yValue )
20 {
21 Radius = radiusValue;
22 }
23
24 // property Radius
25 public double Radius
26 {
27 get
28 {
29 return radius;
30 }
31
32 set
33 {
34 if ( value >= 0 ) // validation needed
35 radius = value;
36 }
37
38 } // end property Radius
39
40 // calculate Circle diameter
41 public double Diameter()
42 {
43 return Radius * 2; // use property Radius
44 }
45
46 // calculate Circle circumference
47 public double Circumference()
48 {
49 return Math.PI * Diameter();
50 }
52 // calculate Circle area
53 public virtual double Area()
54 {
55 return Math.PI * Math.Pow( Radius, 2 ); // use property
56 }
57
58 // return string representation of Circle4
59 public override string ToString()
60 {
61 // use base reference to return Point string representation
62 return "Center= " + base.ToString() +
63 "; Radius = " + Radius; // use property Radius
64 }
65
66 } // end class Circle4



کدهای کلاس مشتق شده



1 // Fig. 9.14: CircleTest4.cs
2 // Testing class Circle4.
34
using System;
5 using System.Windows.Forms;
67
// CircleTest4 class definition
8 class CircleTest4
9 {
10 // main entry point for application
11 static void Main( string[] args )
12 {
13 // instantiate Circle4
14 Circle4 circle = new Circle4( 37, 43, 2.5 );
15
16 // get Circle4's initial x-y coordinates and radius
17 string output = "X coordinate is " + circle.X + "\n" +
18 "Y coordinate is " + circle.Y + "\n" +
19 "Radius is " + circle.Radius;
20
21 // set Circle4's x-y coordinates and radius to new values
22 circle.X = 2;
23 circle.Y = 2;
24 circle.Radius = 4.25;
25
26 // display Circle4's string representation
27 output += "\n\n" +
28 "The new location and radius of circle are " +
29 "\n" + circle + "\n";
30
31 // display Circle4's Diameter
32 output += "Diameter is " +
33 String.Format( "{0:F}", circle.Diameter() ) + "\n";
34
35 // display Circle4's Circumference
36 output += "Circumference is " +
37 String.Format( "{0:F}", circle.Circumference() ) + "\n";
38
39 // display Circle4's Area
40 output += "Area is " +
41 String.Format( "{0:F}", circle.Area() );
42
43 MessageBox.Show( output, "Demonstrating Class Circle4" );
44
45 } // end method Main
46
47 } // end class CircleTest4





و مثال مایکروسافت

308240http://forum.persiantools.com/attachments/f91/attachment-308240d1361722872-bac41nzo32du0bsnhu93.jpg

base چیست
: قبل از base چیست
و چرا base تو کتاب دیتل در کلاس اصلی است و در مثال مایکروسافت در کلاس مشتق شده

ممنون میشم کسی منو به راه راست هدایت کنه

s.hoseinpoor
یک شنبه 06 اسفند 1391, 20:03 عصر
بیس کلاسیه که ازش ارث بردی. و اگه کلمه بیس رو قبل تابع و یا متغییر استفاده کنی میره از کلاسی که ارث برده مقدار رو میگره و برمیگرده