نمایش نتایج 1 تا 4 از 4

نام تاپیک: کانورت کلاس ها در ارث بری

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    در حال حاضر MVC
    سن
    42
    پست
    301

    کانورت کلاس ها در ارث بری

    سلام دوستان
    فرض کنیم کلاس child از کلاس parent ارث بری کرده باشه
    حالا می خوام اطلاعات کلاس child در کلاس parent بریزم و یا برعکس
    سوال من اینجاست راهی به جز کپی کردن این جور کلاسها برای انتقال اطلاعات وجود داره
    یعنی بشه کلاس child رو به parent کانورت کنیم و برعکس

  2. #2

    نقل قول: کانورت کلاس ها در ارث بری

    نقل قول نوشته شده توسط Boy_nn مشاهده تاپیک
    سلام دوستان
    فرض کنیم کلاس child از کلاس parent ارث بری کرده باشه
    حالا می خوام اطلاعات کلاس child در کلاس parent بریزم و یا برعکس
    سوال من اینجاست راهی به جز کپی کردن این جور کلاسها برای انتقال اطلاعات وجود داره
    یعنی بشه کلاس child رو به parent کانورت کنیم و برعکس
    وقتی که یک کلاس از کلاسی ارث بری میکند در واقع بخشی از اعضای تکمیل نشده ی خودش رو تکمیل می کند ... بنابراین چیزی که شما منظورتون هستش ( و یا ممکنه من بد فهمیده باشم ) امکان پذیر نخواهد بود ... اینکه بخواهیم اعضای کلاس مشتق درون کلاس پایه دوباره ریخته باشن نقضی هست بر عمل ارث بری ! و کل طراحی کلاس ها رو زیر سوال میبره ... بصورت خودکار اطلاعات کلاس پایه درون کلاس مشتق قرار میگیرد ( مگر در شرایطی که شما نقض ان را مشخص کرده باشید مانند سطح دسترسی خصوصی )

  3. #3

    نقل قول: کانورت کلاس ها در ارث بری

    سلام.
    شما کلاس Child رو میتونید به Parent کست کنید، به بیان دیگه اگر کلاس های زیر رو در نظر بگیریم:


    public class Parent
    {
    public int ParentProp { get; set; }
    }

    public class Child : Parent
    {
    public int ChildProp { get; set; }
    }


    در اینصورت:

    Child c = new Child();
    Parent p = (Parent)c;


    کد صحیحی هستش. چون در واقع Child در وهله اول، خصوصیات Parent رو داره به ارث میبره. اما برعکسش خیر. یعنی شما نمی تونید یک Parent رو به Child کست کنید. چون مشخص نیست که اون Parent لزوما Child1 هستش، یا Child2 و ...

    اما اگر این سوال رو برای Data Transfer Object ها می پرسید، میتونید از Framework هایی مثل AutoMapper و ... استفاده کنید تا Object ها رو به هم Convert کنید. دقت کنید، این دیگه Cast نیست. روش دیگه استفاده از Reflection هستش، یا Serialize کردن Parent به فرضا JSON Object و Deserialize کردن اون JSON Object به Child Object که خوب، توصیه می کنم از هر دو روش اخیر منصرف بشید.

    موفق باشید.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    در حال حاضر MVC
    سن
    42
    پست
    301

    نقل قول: کانورت کلاس ها در ارث بری

    نقل قول نوشته شده توسط arash691 مشاهده تاپیک
    وقتی که یک کلاس از کلاسی ارث بری میکند در واقع بخشی از اعضای تکمیل نشده ی خودش رو تکمیل می کند ... بنابراین چیزی که شما منظورتون هستش ( و یا ممکنه من بد فهمیده باشم ) امکان پذیر نخواهد بود ... اینکه بخواهیم اعضای کلاس مشتق درون کلاس پایه دوباره ریخته باشن نقضی هست بر عمل ارث بری ! و کل طراحی کلاس ها رو زیر سوال میبره ... بصورت خودکار اطلاعات کلاس پایه درون کلاس مشتق قرار میگیرد ( مگر در شرایطی که شما نقض ان را مشخص کرده باشید مانند سطح دسترسی خصوصی )
    منظور من به ساخت کلاس نبود بلکه فقط کانورت کردن اطلاعات

تاپیک های مشابه

  1. سوال: ارث بری در کلاس ++C
    نوشته شده توسط majid.nasirinejad در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: شنبه 23 مرداد 1389, 17:53 عصر
  2. نحوه ارث بری از دو کلاس در vb.net
    نوشته شده توسط mojtabadj در بخش VB.NET
    پاسخ: 4
    آخرین پست: شنبه 15 اسفند 1388, 10:28 صبح
  3. مبتدی: کلاس های تو در تو و ارث بری
    نوشته شده توسط قله بلند در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 23
    آخرین پست: جمعه 20 آذر 1388, 10:27 صبح
  4. مشکل در ارث بری از یک کلاس آماده
    نوشته شده توسط bahar_engineer در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 16 تیر 1388, 15:05 عصر
  5. مقاله: نحوه ی ارث بری از یک کلاس C++‎ در سی شارپ
    نوشته شده توسط Mehdi Asgari در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 0
    آخرین پست: سه شنبه 19 آذر 1387, 15:36 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •