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

نام تاپیک: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

  1. #1
    کاربر دائمی آواتار saba664
    تاریخ عضویت
    شهریور 1396
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    147

    خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

    error1.jpg


    علت این خطا چیه؟

  2. #2
    کاربر دائمی آواتار saba664
    تاریخ عضویت
    شهریور 1396
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    147

    نقل قول: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

    ی دونه Interface قبلش نوشتم خطاش رفت

    فقط نمی دونم چرا؟ کاربرد اینترفس چی بود اینجا

  3. #3

    نقل قول: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

    در یک کلاس که abstract نیست ، متد های شما باید پیاده سازی داشته باشند ، یعنی:

    public void ControlInfo()
    {


    }


    اگر قرار هست متد های شما صرفا شامل امضای متد باشند و بدون پیاده سازی ، کلاس و متد شما باید abstract باشند و کلاس هایی که از اون ارث می برند ، اون متد ها رو پیاده سازی کنند

        public abstract class Controlable 
    {
    public abstract void ControlInfo();
    }



    اگر هم قطعا هیچ کدوم از متد های کلاس abstract شما ، پیاده سازی ندارند ، میتونید بجاش از interface استفاده کنید ، به اینصورت

    public interface IControlable
    {
    void ControlInfo();
    }




    در مورد تفاوت های کلاس abstract و interface هم مطالعه بفرمائید.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  4. #4
    کاربر دائمی آواتار saba664
    تاریخ عضویت
    شهریور 1396
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    147

    نقل قول: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

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

    قبلا هیچ خطایی نمیداد اما همینکه ی کلاس نوشتم که از کلاس IControlable استفاده کنه بهم خطا داده که کلاس user نمی تونه اجرا کنه این کلاس IControlable رو حالا باید چیکار کنم؟اینم کد خطا

    123654789.jpg

  5. #5

    نقل قول: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

    سلام
    وقتی یک کلاس قراره یک اینترفیس رو پیاده سازی کنه ، باید همه ی متدها رو پیاده سازی کنه.
    شما کد کامل اینترفیستون رو اینجا قرار بدید لطفا
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  6. #6
    کاربر دائمی آواتار saba664
    تاریخ عضویت
    شهریور 1396
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    147

    نقل قول: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

    نقل قول نوشته شده توسط محمد آشتیانی مشاهده تاپیک
    سلام
    وقتی یک کلاس قراره یک اینترفیس رو پیاده سازی کنه ، باید همه ی متدها رو پیاده سازی کنه.
    شما کد کامل اینترفیستون رو اینجا قرار بدید لطفا
    سلام به شما

    خب قضیه همون کدیه که خودتون زحمت کشیدین توضیح دادین گفتین اگه

    اگر هم قطعا هیچ کدوم از متد های کلاس abstract شما ، پیاده سازی ندارند ، میتونید بجاش از interface استفاده کنید ، به اینصورت
    1
    2
    3
    4
    5
    public interface IControlable
    {
    void ControlInfo();
    }


    در واقع سه تا کلاس نوشتم
    یکی توضیحات
    یکی یوزر
    یکی هم همین void ControlInfo()

    حالا دو تا کلاسم هم کدهاش به صورت زیره ملاحظه کنین

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

    namespace final_doctor
    {
    class User_Exceptions :ApplicationException
    {

    //================================================== ===
    // class User_Exceptions : ApplicationException
    //{
    //----------------------------------------------
    public User_Exceptions(String Message)
    : base("خطا در اطلاعات کاربران" + Message)
    {
    }
    }
    //================================================== ===
    class User_Exceptions_UserName : ApplicationException
    {
    //----------------------------------------------
    public User_Exceptions_UserName()
    : base("نام کاربری وارد شده، معتبر نیست")
    {
    }
    }
    //================================================== ===
    class User_Exceptions_Password : ApplicationException
    {
    //----------------------------------------------
    public User_Exceptions_Password()
    : base("رمز عبور وارد شده، معتبر نیست")
    {
    }
    }
    //================================================== ===
    class User_Exceptions_NoManageUserRemine : ApplicationException
    {
    //----------------------------------------------
    public User_Exceptions_NoManageUserRemine()
    : base("هیچ کاربری برای مدیریت دیگر کاربران وجود ندارد")
    {
    }
    }




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

    namespace final_doctor
    {
    public class User : IControlable
    {
    public Boolean Access_sabt = true, Access_gozaresh = true, Access_backup = true, Access_Users = true, Access_jostejo = true, Access_edit = true, Access_delete = true, Access_savabegh = true;
    private string _userName = "";
    public string UserName
    {

    get { return _userName ; }
    set
    {
    if (value == "")
    throw new User_Exceptions_UserName();
    else
    _userName = value;
    }
    }
    //--------------------------------------------------------------
    private string _password = "";
    public string Password
    {
    get { return _password; }

    set
    {
    if (value.Length < 6)
    throw new User_Exceptions_Password();
    else

    _password = value;
    }
    }

    //--------------------------------------------------------------

    public void ControlInfo()
    {
    if (_userName == "")
    throw new User_Exceptions_UserName();
    if (_password.Length < 6)
    throw new User_Exceptions_Password();
    }
    //--------------------------------------------------------------

    public Boolean IsCorrectUser()
    {
    ControlInfo();
    Condition Cond = new Condition(2);
    Cond.AddCondition("UserName", Operatotrs.مساوی, _userName, Concat_Type.And);
    Cond.AddCondition("Pass", Operatotrs.مساوی, _password, Concat_Type.None);
    DataTable DT = new DataTable();
    DT = DataBase_SQL.Action(DBOperation.Select, Cond, "Users", "UserName");
    if (DT.Rows.Count > 0)
    {
    _userName = DT.Rows[0][0].ToString();
    return true;
    }
    else
    return false;
    }
    //--------------------------------------------------------------

    public void ShowUsers(System.Windows.Forms.ComboBox CMB)
    {
    CMB.DataSource = DataBase_SQL.Action(DBOperation.Select, null, "Users", "UserName", "UserName");
    CMB.DisplayMember = "UserName";
    CMB.ValueMember = "UserName";
    }


    //--------------------------------------------------------------


    public Boolean IsDuplicate()
    {
    Condition Cond = new Condition(1);
    DataTable DT = new DataTable();
    Cond.AddCondition("UserName", Operatotrs.مساوی, _userName, Concat_Type.None);
    DT = DataBase_SQL.Action(DBOperation.Select, Cond, "Users", "UserName");
    if (DT.Rows.Count > 0) return true; else return false;
    }


    //--------------------------------------------------------------

    public void CreateUser()
    {
    ControlInfo();
    DataBase_SQL.Action(DBOperation.Insert, null, "Users", "UserName,Pass,Access_sabt, Access_gozaresh, Access_backup, Access_jostejo, Access_edit, Access_Users,Access_delete,Access_savabegh", _userName, _password, Access_sabt, Access_gozaresh, Access_backup, Access_jostejo, Access_edit, Access_Users, Access_delete, Access_savabegh);
    }

    //--------------------------------------------------------------
    public void ShowInfo(String UserName)
    {
    Condition Cond = new Condition(1);
    DataTable DT = new DataTable();
    Cond.AddCondition("UserName", Operatotrs.مساوی, UserName, Concat_Type.None);
    DT = DataBase_SQL.Action(DBOperation.Select, Cond, "Users", "UserName,Pass");
    _userName = DT.Rows[0]["UserName"].ToString();
    _password = DT.Rows[0]["Pass"].ToString();
    }
    //--------------------------------------------------------------

    public void ChangeUserInfo(String UserName)
    {
    if (Access_Users == false)
    {
    DataTable DT = new DataTable();
    DT = DataBase_SQL.Bank_Select("Select UserName From Users Where UserName<>'" + UserName + "' And Access_Users=1");
    if (DT.Rows.Count == 0) throw new User_Exceptions_NoManageUserRemine();
    }
    Condition Cond = new Condition(1);
    Cond.AddCondition("UserName", Operatotrs.مساوی, UserName, Concat_Type.None);
    DataBase_SQL.Action(DBOperation.Update, Cond, "Users", "UserName,Pass,Access_sabt, Access_gozaresh, Access_backup, Access_jostejo, Access_edit, Access_Users,Access_delete,Access_savabegh", _userName, _password, Access_sabt, Access_gozaresh, Access_backup, Access_jostejo, Access_edit, Access_Users, Access_delete, Access_savabegh);
    }
    //--------------------------------------------------------------
    public void DeleteUser()
    {
    DataTable DT = new DataTable();
    DT = DataBase_SQL.Bank_Select("Select UserName From Users Where UserName<>'" + _userName + "' And Access_Users=1");
    if (DT.Rows.Count == 0) throw new User_Exceptions_NoManageUserRemine();
    Condition Cond = new Condition(1);
    Cond.AddCondition("UserName", Operatotrs.مساوی, _userName);
    DataBase_SQL.Action(DBOperation.Delete, Cond, "Users", "");
    }
    //--------------------------------------------------------------
    public void LoadAccess(String UserName)
    {
    DataTable DT = new DataTable();
    Condition Cond = new Condition(1);
    Cond.AddCondition("UserName", Operatotrs.مساوی, UserName);
    DT = DataBase_SQL.Action(DBOperation.Select, Cond, "Users", "UserName,Pass,Access_sabt, Access_gozaresh, Access_backup, Access_jostejo, Access_edit, Access_Users,Access_delete,Access_savabegh");
    Access_sabt = Convert.ToBoolean(DT.Rows[0]["Access_sabt"]);
    Access_gozaresh = Convert.ToBoolean(DT.Rows[0]["Access_gozaresh"]);
    Access_backup = Convert.ToBoolean(DT.Rows[0]["Access_backup"]);
    Access_jostejo = Convert.ToBoolean(DT.Rows[0]["Access_jostejo"]);
    Access_edit = Convert.ToBoolean(DT.Rows[0]["Access_edit"]);
    Access_Users = Convert.ToBoolean(DT.Rows[0]["Access_Users"]);
    Access_delete = Convert.ToBoolean(DT.Rows[0]["Access_delete"]);
    Access_savabegh = Convert.ToBoolean(DT.Rows[0]["Access_savabegh"]);
    }










    }

    }
    آخرین ویرایش به وسیله saba664 : چهارشنبه 06 دی 1396 در 12:19 عصر

  7. #7

    نقل قول: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

    سلام
    اگر اینترفیس شما فقط یک متد داره به اسم ControlInfo ، نباید در کلاس User این خطا رو مشاهده کنید ، من فکر میکنم اینترفیس شما آیتم های دیگری نیز دارد
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  8. #8
    کاربر دائمی آواتار saba664
    تاریخ عضویت
    شهریور 1396
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    147

    نقل قول: خطای 'final_doctor.Controlable.ControlInfo()' must declare a body because it is not marked

    نقل قول نوشته شده توسط محمد آشتیانی مشاهده تاپیک
    سلام
    اگر اینترفیس شما فقط یک متد داره به اسم ControlInfo ، نباید در کلاس User این خطا رو مشاهده کنید ، من فکر میکنم اینترفیس شما آیتم های دیگری نیز دارد
    سلام
    فقط همینه

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

  1. پاسخ: 1
    آخرین پست: پنج شنبه 04 آبان 1391, 02:38 صبح
  2. پاسخ: 2
    آخرین پست: دوشنبه 10 مهر 1391, 19:16 عصر
  3. پاسخ: 28
    آخرین پست: دوشنبه 10 مهر 1391, 14:20 عصر
  4. پاسخ: 2
    آخرین پست: شنبه 23 بهمن 1389, 08:53 صبح
  5. خطای because it is being used by another process بعد از دانلود فایل
    نوشته شده توسط online_mansoor2007 در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: چهارشنبه 20 بهمن 1389, 20:25 عصر

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

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