تحية طيبة
كيف يمكن الخروج من كلاس؟
-- قمت باستخدام
Environment.Exit(0);
ولكن يتم إيقاف المشروع بكامله (أو السيرفير بالكامل) حيث أن هذه الكلاس تعمل ضمن ASP.net عن طريق ملف DLL
وشكراً
تحية طيبة
كيف يمكن الخروج من كلاس؟
-- قمت باستخدام
Environment.Exit(0);
ولكن يتم إيقاف المشروع بكامله (أو السيرفير بالكامل) حيث أن هذه الكلاس تعمل ضمن ASP.net عن طريق ملف DLL
وشكراً
السلام عليكم
أخي الكريم
تستخدم
Enviroment.Exit(0);
للخروج من البرنامج بشكل كامل
جرب إستخدام Return
بالتوفيق
Be the change you want to see in the world
شكراً أخى الكريم للتفاعل
ولكن..
قمت بوضع شرط فى Class Constructor .. (حتى لا أقوم بوضع جمل شرطية عن تنفيذ كل method داخل هذه الكلاس)
بحيث عند أخذ Instance يدخل للبحث عن الشرط إذا كان موجود يعطى return أما إذا لم يتحقق من الشرط فهنا يتم الخروج من الكلاس ... ولا يتم التعامل مع أى Method
فهل يمكن تطبيق ذلك بالفعل؟؟ أم أضطر إلى وضع شرط لكل Method بناءً على الـ return Value.. التى تنتج من Constructor!!
بصياغة أخرى..
ماهو الإجراء المناسب لوضع شرط ما داخل الـ Constructor الخاصة بملف DLL بحيث إذا تحقق هذا الشرط يتم استخدام الـ Methods الموجودة به وإلا يعطى Return Null؟؟
الأفضل أن تنشيء منهج ستاتيكي في نفس الصنف بحيث تجعله يعيد كائن من الصنف وداخله تضع الشرط فإما ينشيء كائن ويعيده لتسنده إلى المتحول أو أن يتجاهل الطلب ويعيد Null ولا يدخل إلى المشيد أصلا.
تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 16 يونيو 2012 في 16:14
ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها
كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور
أشكرك أخى الكريم أبو أحمد
ولكن المشروع يتطلب استخدام Instance من الكلاس!!!
ولا أريد التعديل داخل الـ Method !!
تم تعديل هذه المشاركة بواسطة هانى عوض في 16 يونيو 2012 في 16:33
بامكانك استخدام عمل Exception داخل ال constructor
public class TestClass
{
public TestClass()
{
if (true)
throw new Exception("Can not access this class.");
}
}قولوا لا اله الا الله تفلحوا
ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم
akramKamal كتب:بامكانك استخدام عمل Exception داخل ال constructor
public class TestClass { public TestClass() { if (true) throw new Exception("Can not access this class."); } }
شكراً أخى أكرم
ولكن الـ throw new Exception ستحدث خطأ مقصود ولن يتم الخروج من الكلاس بـ Return Null بل بخطأ يمنع إستمرار الكود..
أخي اذا حابب تعقد الأمور فأنا مستعد, جرب الكود هادا
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();
}
}قولوا لا اله الا الله تفلحوا
ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم
هانى عوض كتب:أشكرك أخى الكريم أبو أحمد
ولكن المشروع يتطلب استخدام Instance من الكلاس!!!
ولا أريد التعديل داخل الـ Method !!
ولكنك أخي قلت أنه في حال لم يتحقق شرط معين تريد أن يخرج ولا يكمل إنشاء Instance
وافرض أن البرنامج لم يتحقق من البداية إذا فهذا يعني أنه لن يكون هناك Instance من البداية
ولهذا قلت اجعل داخل ال Class نفسه Statick Method
كمثال المنهج Main الذي ينشيء Instance من الفورم الرئيسي
كما عندي اقتراح آخر
ليكن لديك متحول بولياني عام يعبر عن نتيجة الشرط
واستخدمه في بداية كل منهج داخل الصنف
بحيث لو تم إنشاء كائن من الصنف وتم استدعاء المناهج من أي مكان يتم الخروج من المنهج بدون تنفيذ المحتوى في حال تحقق الشرط وإلا فيتابع طبيعي
لأنك لو دمرت الكائن وكان هناك استدعاء لأحد مناهجه فسيولد خطأ وبالتالي ستضطر لالتقاط الخطأ ومعالجته بعد كل استخدام لأحد المناهج
ولهذا فالفحص داخل المنهج والعودة بدون نتيجة آمن
ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها
كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور
شكراً لكل من حاول المساعدة
وبالفعل تم الحصول على النتيجة المطلوبة باستخدام
throw new Exception("Can not access this class.");وأخص بالذكر أخى أكرم