تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
How To Create Public Message
#21
إقتباس : أقترح على الاستاذ أبو إيهاب بحكم أنه من المسئولين على المنتدى

أنا عضو بسيط مثلي مثلك ,,, لا تحملني فوق طاقتي وما عندي وقت .
يتفضل أخي أبو بعقوب بعمل الموضوع طالما أنه متعمق في الكلاسات .
Abu Ehab : Microsoft Partner  & Systems Developer
 Youtube   Facebook    Twitter   
الرد }}}
تم الشكر بواسطة:
#22
[COLOR="#000080"]اخواني سؤال بسيط

انا استعمل الكلاسات كثيرا خاصة اذا كان برنامجي متعدد الميزات

فلو وضعت جميع الدوال بالفورم راح تكون ربكة والسورس بكون مو احترافي

فمثلا عندك دوال كثيرة حق التعامل مع منافذ الجهاز

افتح class وضع دوالك فيها وسم الكلاس PortControl او اي شيئ

واذا عندك كود طويل ودوال طويلة حق ارسال واستقبال البيانات

افتح class وضع دوالك فيها وسم الكلاس SendReceive او اي شيئ

--
ممكن تستفيد من الكلاس لتطوير control معينة - مثلا تريد من الbutton ان يحتوي على خاصية اسمها Password في الحقيقة البوتون لايحتوي على ذلك
فيمكنك باستعمال مبدأ الوراثة للفئة واضافة خاصيتك

c#
PHP كود :
public partial class Form1 Form
    
{
        private 
void label1_Click(object senderEventArgs e)
        {
            
ButtonX but = new ButtonX();
            
but.Password "Mohammed jassim";
            
MessageBox.Show(but.Password);
        }
    }

    public class 
ButtonX Button
    
{
       public 
string Password getset; }
    } 


vb.net
PHP كود :
Public Partial Class Form1
    Inherits Form
    
Private Sub label1_Click(sender As ObjectAs EventArgs)
        
Dim but As New ButtonX()
        
but.Password "Mohammed jassim"
        
MessageBox.Show(but.Password)
    
End Sub
End 
Class

Public Class 
ButtonX
    Inherits Button
    
Public Property Password() As String
        Get
            
Return m_Password
        End Get
        Set
            m_Password 
Value
        End Set
    End Property
    
Private m_Password As String
End 
Class 
هذي طريقتي في استعمال الكلاسات
ممكن يجيك شخص ثاني يستعمل الكلاسات لامور اخرى
المهم فكرتها سهلة واتمنى وصلت



^
هذا لم يكن سؤالي انما ضربت مثلا لأسهل معنى الكلاس
السؤال هو
انا لم اسوي فئة اجعل جميع دوالها وخصاصها وكل شيئ فيها static public
الstatic يخليك توصل للدالة دون الحاجة الى تعريف نسخة منها

سي شارب
PHP كود :
public partial class Form1 Form
    
{
        private 
void label1_Click(object senderEventArgs e)
        {
            
string pass ButtonX.Password;
        }
    }

    public class 
ButtonX Button
    
{
       public static 
string Password getset; }
    } 

فيجوال
PHP كود :
ublic Partial Class Form1
    Inherits Form
    
Private Sub label1_Click(sender As ObjectAs EventArgs)
        
Dim pass As String ButtonX.Password
    End Sub
End 
Class

Public Class 
ButtonX
    Inherits Button
    
Public Shared Property Password() As String
        Get
            
Return m_Password
        End Get
        Set
            m_Password 
Value
        End Set
    End Property
    
Private Shared m_Password As String
End 
Class 

ملاحظة الstatic في الفيجوال هو shared

كما ترا في المثال استدعيت الخاصية password دون الحاجة الى تعريف نسخة كائن

انا اهتم للرام كثيرا ودائما انظر في العملية اذا كانت ستستهلك مساحة في الرام

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

مما ادى الى تعليق البرنامج وحصول not response في اغلب الاحيان وبطئ الجهاز

منذ ذلك الوقت وانا اهتم للرام
[COLOR="#FF0000"]
فهل استعمال static او shared يستعمل مساحة في الرام
ولا نفس الشيئ لو استعملت public وقمت بتعريف نسخة كائن واستعمال الدالة ؟؟[/COLOR]



بالتوفيق[/COLOR]
الرد }}}
تم الشكر بواسطة:
#23
أبو يعقوب كتب :الأخ العزيز سعود
حمل كتاب تركي العسيري (حتى لو كان من سنة 2003 فإن فيه الأساسيات) وتعلم OOP فقد تفنن هذا العبقري في شرح مبادئ OOP

كما انه قام بإضافة ملفات مع الكتاب (الأمثلة) وأضاف ملف ArabicConsol.dll التي كنا نعتقد انها تكتب عربي في نافذة Dos واتضح انها مجرد Form فيها TextBox أسود فقط !

http://www.al-asiri.com/View1/Pages/Reco...58244bca4c
[COLOR="#0000FF"]

ايو الله يا ابو يعقوب ومع تطور العلم

عرفنا اسم Form
ArabicConsoleWindow.vb

و اسم TextBox
txtScreen
[/COLOR]


[COLOR="#0000FF"]
وانا كنت افكر ان الاستاذ تركي العسيري قدر يصمم برنامج MS-DOC Rolleyes

[/COLOR]
الرد }}}
تم الشكر بواسطة:
#24
محمود رغمان كتب :لا لا لا انا مش موافق
طالما تم تفجير الموضوع
فإن الشروحوات المتفرقة تشتت ولا تفيد
أقترح على الاستاذ أبو إيهاب بحكم أنه من المسئولين على المنتدى
أن يتم فتح قسم خاص بالكلاس والدوال وملفات Dll
الجميع يعرف أهمية هذا الموضوع
هل سنظل فى تصغير الفورم المفتوحة وعرض الشجرة فى ليست بوكس
نرجو أن نقفذ إلى الأمام
هذا اقتراح
ولكم جزيل الشكر

لاداعي لذلك، الكلاس من خصائص اللغة، حاله حال المتغيرات والدوال فهل نفتح لكل منها قسم خاص ؟

ما ينقصنا هو قسم هندسة البرمجيات
الرد }}}
تم الشكر بواسطة:
#25
abu ehab كتب :
أنا عضو بسيط مثلي مثلك ,,, لا تحملني فوق طاقتي وما عندي وقت .
يتفضل أخي أبو بعقوب بعمل الموضوع طالما أنه متعمق في الكلاسات .

كل ما تعلمته في oop كان من كتاب تركي العسيري
أروع كتاب برمجة
الرد }}}
تم الشكر بواسطة:
#26
السلام عليكم

إقتباس :فهل استعمال static او shared يستعمل مساحة في الرام
ولا نفس الشيئ لو استعملت public وقمت بتعريف نسخة كائن واستعمال الدالة ؟؟

اخي العزيز بما أن الوصول الى دالة من نوع Static لايحتاج الى تعريف Instance للفئة فانه لا يأخذ مساحة كبيرة من الذاكرة لكن عند تحميل الدالة التي من نوع static في الذاكرة يكون اسرع من تحميل الدالة التي هي ليست static لانها لا تحتاج الى انشاء Instance لاستدعائها.

وأي شيء static يخزن في مكان خاص في الذاكرة (heap) يدعى بـ High Frequency Heap او normal garbage collected heap

heap: مكان كبير من الذاكرة حيث تخزن البيانات فيها بشكل عشوائي.

ويتم تحميل الـstatic الى الذاكرة في حال اول استدعاء لها ويتم التخلص منها حال انتهاء عمل البرنامج

الرد }}}
تم الشكر بواسطة:
#27
ماشاء الله تبارك الله
مجموعة من العمالقة
يعلم الله انى استفدت كثيرا
اخى وحبيبى ابو ايهاب جزاك الله خيرا
والاخوة جميعا جزاكم الله خيرا


ولى سؤال ما الفرق بين الكلاس والموديول
الرد }}}
تم الشكر بواسطة:
#28
موضوع طويل
1_الفئه أكثر تطور من المديول
2_ اماكنيه الوراثه في الفئات وهذا غير موجود في المديول
3_ أمكانية الأشتقاق في الكلاس ولا يمكن ذلك في المديول
4_ كلاهما يتعامل مع Public Property
5_ ممكن تدمج مجموعه كلاسات في كلاس واحد Class Library
6_الوصول المباشر الى المتغيرات في المديول ولا يمكن ذلك في الكلاس الى من خلال فئه جديدة من الكلاس


Abu Ehab : Microsoft Partner  & Systems Developer
 Youtube   Facebook    Twitter   
الرد }}}
تم الشكر بواسطة:
#29
Abu Ehab كتب : موضوع طويل
1_الفئه أكثر تطور من المديول
2_ اماكنيه الوراثه في الفئات وهذا غير موجود في المديول
3_ أمكانية الأشتقاق في الكلاس ولا يمكن ذلك في المديول
4_ كلاهما يتعامل مع Public Property
5_ ممكن تدمج مجموعه كلاسات في كلاس واحد Class Library
6_الوصول المباشر الى المتغيرات في المديول ولا يمكن ذلك في الكلاس الى من خلال فئه جديدة من الكلاس



أحسنت استاذي

وهذا ليس موجود في C# وهو ليس من خصائص .Net في الأصل، لغة البيسك صممت لتحاكي البيسك القديمة (6 وما قبله) وتواكب الدوت نت

فكل التسهيلات التي تجدونها في البيسك ماهي إلا خدعة يتكفل بها مترجم البيسك، ومن أراد التأكد فليقارن الكود قبل وبعد الترجمة من خلال برنامج Reflector

ولكن تبقى لغة البيسك أجمل منظراً واسهل في القراءة
الرد }}}
تم الشكر بواسطة:
#30
sajad كتب :السلام عليكم



اخي العزيز بما أن الوصول الى دالة من نوع Static لايحتاج الى تعريف Instance للفئة فانه لا يأخذ مساحة كبيرة من الذاكرة لكن عند تحميل الدالة التي من نوع static في الذاكرة يكون اسرع من تحميل الدالة التي هي ليست static لانها لا تحتاج الى انشاء Instance لاستدعائها.

وأي شيء static يخزن في مكان خاص في الذاكرة (heap) يدعى بـ High Frequency Heap او normal garbage collected heap

heap: مكان كبير من الذاكرة حيث تخزن البيانات فيها بشكل عشوائي.

ويتم تحميل الـstatic الى الذاكرة في حال اول استدعاء لها ويتم التخلص منها حال انتهاء عمل البرنامج


مشكور اخوي على المعلومات القيمة

لكن متى يتم التخلص من الدالة العادية التي ليست static ؟؟

وحسب الي قلته يعني static اسرع واقل مساحة وافضل من الدالة العادية الي تستعمل محددات الوصول الاخرى
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  لمعرفة رسالة الخطأ الأخيرة بعد استدعاء دالة API (Last Error Message) RaggiTech 0 2,183 17-10-12, 06:17 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: