الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية الخروج من كلاس

بدأه هانى عوض في 16 يونيو 2012 · 11 رد · 851 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تحية طيبة

كيف يمكن الخروج من كلاس؟

-- قمت باستخدام

Environment.Exit(0);

ولكن يتم إيقاف المشروع بكامله (أو السيرفير بالكامل) حيث أن هذه الكلاس تعمل ضمن ASP.net عن طريق ملف DLL

وشكراً

#2

السلام عليكم

أخي الكريم

تستخدم

Enviroment.Exit(0);

للخروج من البرنامج بشكل كامل

جرب إستخدام Return

بالتوفيق

Be the change you want to see in the world


#3

شكراً أخى الكريم للتفاعل

ولكن..

قمت بوضع شرط فى Class Constructor .. (حتى لا أقوم بوضع جمل شرطية عن تنفيذ كل method داخل هذه الكلاس)

بحيث عند أخذ Instance يدخل للبحث عن الشرط إذا كان موجود يعطى return أما إذا لم يتحقق من الشرط فهنا يتم الخروج من الكلاس ... ولا يتم التعامل مع أى Method

فهل يمكن تطبيق ذلك بالفعل؟؟ أم أضطر إلى وضع شرط لكل Method بناءً على الـ return Value.. التى تنتج من Constructor!!

#4

أخي هل يمكن أن توضح لي فكرتك

Be the change you want to see in the world


#5

بصياغة أخرى..

ماهو الإجراء المناسب لوضع شرط ما داخل الـ Constructor الخاصة بملف DLL بحيث إذا تحقق هذا الشرط يتم استخدام الـ Methods الموجودة به وإلا يعطى Return Null؟؟

#6

الأفضل أن تنشيء منهج ستاتيكي في نفس الصنف بحيث تجعله يعيد كائن من الصنف وداخله تضع الشرط فإما ينشيء كائن ويعيده لتسنده إلى المتحول أو أن يتجاهل الطلب ويعيد Null ولا يدخل إلى المشيد أصلا.

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 16 يونيو 2012 في 16:14

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#7

أشكرك أخى الكريم أبو أحمد

ولكن المشروع يتطلب استخدام Instance من الكلاس!!!

ولا أريد التعديل داخل الـ Method !!

تم تعديل هذه المشاركة بواسطة هانى عوض في 16 يونيو 2012 في 16:33

#8

بامكانك استخدام عمل Exception داخل ال constructor

    public class TestClass
    {
        public TestClass()
        {
            if (true)
                throw new Exception("Can not access this class.");
        }
    }
1

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#9
akramKamal كتب:

بامكانك استخدام عمل Exception داخل ال constructor

    public class TestClass
    {
        public TestClass()
        {
            if (true)
                throw new Exception("Can not access this class.");
        }
    }

شكراً أخى أكرم

ولكن الـ throw new Exception ستحدث خطأ مقصود ولن يتم الخروج من الكلاس بـ Return Null بل بخطأ يمنع إستمرار الكود..

#10

أخي اذا حابب تعقد الأمور فأنا مستعد, جرب الكود هادا

 public interface IMethodsClass
    {
        public string TestMethod1();
        public string TestMethod2();
    }
    public class MethodsNulls : IMethodsClass
    {
        public string TestMethod1()
        {
           return null;
        }

        public string TestMethod2()
        {
           return null;
        }
    }

    public class MethodsClass : IMethodsClass
    {
        public string TestMethod1()
        {
            return "Any value";
        }

        public string TestMethod2()
        {
            return "Any value";
        }
    }

    public class TestClass : IMethodsClass
    {
        public IMethodsClass MethodsClassInstance { get; private set; }
        public TestClass(bool condition)
        {
            if (condition)
                MethodsClassInstance=new MethodsNulls;
            else MethodsClassInstance=new MethodsClass();
        }

        public string TestMethod1()
        {
            return MethodsClassInstance.TestMethod1();
        }

        public string TestMethod2()
        {
            return MethodsClassInstance.TestMethod2();
        }
    }
1

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#11
هانى عوض كتب:

أشكرك أخى الكريم أبو أحمد

ولكن المشروع يتطلب استخدام Instance من الكلاس!!!

ولا أريد التعديل داخل الـ Method !!

ولكنك أخي قلت أنه في حال لم يتحقق شرط معين تريد أن يخرج ولا يكمل إنشاء Instance

وافرض أن البرنامج لم يتحقق من البداية إذا فهذا يعني أنه لن يكون هناك Instance من البداية

ولهذا قلت اجعل داخل ال Class نفسه Statick Method

كمثال المنهج Main الذي ينشيء Instance من الفورم الرئيسي

كما عندي اقتراح آخر

ليكن لديك متحول بولياني عام يعبر عن نتيجة الشرط

واستخدمه في بداية كل منهج داخل الصنف

بحيث لو تم إنشاء كائن من الصنف وتم استدعاء المناهج من أي مكان يتم الخروج من المنهج بدون تنفيذ المحتوى في حال تحقق الشرط وإلا فيتابع طبيعي

لأنك لو دمرت الكائن وكان هناك استدعاء لأحد مناهجه فسيولد خطأ وبالتالي ستضطر لالتقاط الخطأ ومعالجته بعد كل استخدام لأحد المناهج

ولهذا فالفحص داخل المنهج والعودة بدون نتيجة آمن

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#12

شكراً لكل من حاول المساعدة

وبالفعل تم الحصول على النتيجة المطلوبة باستخدام

throw new Exception("Can not access this class.");

وأخص بالذكر أخى أكرم

مواضيع مشابهة