يسم الله الرحمن الرحيم.
إخواني محترفي الـ c# ، لدي سؤال يخص نسلسل تنفيذ مناهج البناء للاصناف المشتقة.
أنا اقرأ كتابا للبرمجة بالـ c# ، عندما وصلت لفصل البرمجة الكائنية لاحضت أن هناك أمرا يناقض الكاتب ، حيث أن الكاتب يقول أنه في حالة كان لدينا صنف يشتق من صنف أساس و أنه إذا قمنا بإنشاء حالة من الصنف المشتق .
وإذا استخدمنا منهج البناء العير الإفتراضي (الذي يحمل توقيعا) فإن منهج الصنف الأساس الذي سينفذ هو الذي يحمل توقيعه نفس توقيع الصنف المشتق
وهذا هو المثال.
using System
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class MyBaseClass
{
public MyBaseClass()
{
Console.WriteLine("MyBaseClass()");
}
public MyBaseClass(int i)
{
Console.WriteLine("myBaseClass({0})", i);
}
}
public class MyDerivedClass : MyBaseClass
{
public MyDerivedClass()
{
Console.WriteLine("MyDerivedClass()");
}
public MyDerivedClass(int i)
{
Console.WriteLine("MyDerivedClass({0})", i);
}
public MyDerivedClass(int i, int j)
{
Console.WriteLine("MyDerivedClass({0}, {1})", i, j);
}
}
class Program
{
static void Main(string[] args)
{
MyDerivedClass MyObj = new MyDerivedClass(5);
Console.ReadKey();
}
}حيث يقول الكاتب أن التنفيذ سيأخذ الشكل التالي:
1- system.Object() طبعا
2- MyBaseClass(int i)
3- MyDerivedClass(int i)
ولكن هذا ما لم يحصل معي .
حيث كانت النتيجة هكذا.
1- System.Object.Object() دائما.
2- MyBaseClass.MyBaseClass()
3- MyDerivedClass(int i)
وهذا يعني أن المنهج الذي طبق في الصنف الأساس هو المنهج الأفتراضي وليس المنهج الذي يحمل نفس توقيع الصنف المشتق
ما الخطب :wacko: ؟