ASP.NET2005
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

سوال امتیاز دار

+2
bigdeli
Admin
6 مشترك

اذهب الى الأسفل

سوال امتیاز دار Empty سوال امتیاز دار

پست  Admin الأربعاء نوفمبر 18, 2009 12:21 pm

کلاس در #c به چه معناست؟
Admin
Admin
Admin
Admin

تعداد پستها : 49
تاريخ التسجيل : 2009-10-22

https://itghorveh.forumfa.net

بازگشت به بالاي صفحه اذهب الى الأسفل

سوال امتیاز دار Empty رد: سوال امتیاز دار

پست  bigdeli الخميس نوفمبر 19, 2009 12:47 am

کلاس در واقع فایلی است که به برنامه ضمیمه شده و شامل توابع و متغیر ها می باشد در مثال زیر یک نمونه کلاس تعریف شده است.

// Namespace اعلان
using System;
class OutputClass
{
string myString;
// سازنده
public OutputClass(string inputString)
{
myString = inputString;
}
// متد نمونه
public void printString()
{
Console.WriteLine("{0}", myString);
}
// تخريب كننده
~OutputClass()
{
// روتيني جهت آزادسازي برخي از منابع سيستم
}
}
// كلاس آغازين برنامه
class ExampleClass
{
// آغاز اجراي برنامه
public static void Main()
{
// OutputClass نمونه‌اي از
OutputClass outCl = new OutputClass("This is printed by the output class.");
// Output فراخواني متد كلاس
outCl.printString();
}
}

bigdeli
کاربر متوسط
کاربر متوسط

تعداد پستها : 41
تاريخ التسجيل : 2009-10-26

بازگشت به بالاي صفحه اذهب الى الأسفل

سوال امتیاز دار Empty تشکر

پست  Admin الخميس نوفمبر 19, 2009 4:23 am

تشکر اما میشه بیشتر راهنمایی کنید.
Admin
Admin
Admin
Admin

تعداد پستها : 49
تاريخ التسجيل : 2009-10-22

https://itghorveh.forumfa.net

بازگشت به بالاي صفحه اذهب الى الأسفل

سوال امتیاز دار Empty جوابیه

پست  mohammad moradi الخميس نوفمبر 19, 2009 11:00 am

[right]قبل از بررسي تفاوت بين كلاسها بين C++ و C# ابتدا خاصيت هاي عمومي يك كلاس را بررسي كرده سپس به بررسي تفاوت بين اين دو زبان قدرتمند خواهيم پرداخت.
تعريف. كلاس در حالت ساده مجموعه اي از خواص(attributes) و روش ها (methodes) است كه در رابطه با هم هدف مشتركي را دنبال مي كنند و خدماتي را ارائه مي كنند. البته اين تعريف در حد يك تعريف علمي مي باشد ولي ذكر اين نكته ضروري است كه اكثر تعاريف در شي گرايي در طبيعت وجود دارد و در ساده ترين حالت براي تعريف يك كلاس مي توان از تعريف انسان استفاده كرد كه اين بحث در اين مقاله نمي گنجد. در هر حال ما به تعريف فوق اكتفا كرده و بحث را ادامه مي دهيم.
خواص ها و روش ها كه در تعريف كلاس ارائه شد مي تواند نحوه دسترسي متفاوتي مانند public و private و protected داشته باشد كه براي برنامه نويسان C++ نيازي به توضيح نيست.

تفاوت در تعريف يك كلاس:
چنانچه در مقاله لايه ها در C# نيز اشاره شد يك كلاس در يك برنامه C# در داخل يك لايه تعريف خواهد شد(اجباري نيست). تعريف يك كلاس در C# تفاوتهايي با C++ دارد كه سعي خواهيم كرد اين تفاوت ها را با چند مثال توضيح دهيم.
فرض كنيد كلاس زير در C++ تعريف شده است كه اين كلاس را به يك كلاس C# تبديل خواهيم كرد.
Test.h //
} class CTest
: private
; int m_at1
; () int f1
: public
; float m_at2
int f2();
CTest();
~CTest();
};

// Test.cpp
#include "test.h"
CTest::CTest(){
m_at1 = 0;
m_at2 = 0.0;
}
CTest::~CTest(){
// cout << "destructor call";
}
int CTest::f1(){
return m_at1;
}
int CTest::f2(){
return m_at1+(int)m_at2;
}

تفاوت اول:
بر خلاف C++ در C# تعريف و نحوه عملكرد يك تابع يا Method در خود تعريف كلاس قرار داده مي شود. در C++ غالبا تعريف كلاس در فايل .h و بدنه توابع در فايل .cpp قرار مي گرفت. البته ذكر اين نكته ضروري است كه مي توان همين عمل را در .h نيز قرار داد ولي در يك برنامه بزرگ اين عمل كنترل برنامه را از دست برنامه نويس خارج كرده و همچنين مشكلات ديگري را براي برنامه نويسان ايجاد مي كند كه برنامه نويسان C++ با اين مشكلات آشنا هستند.
تفاوت دوم:
بر خلاف C++ در C# يك دسته از متغييرها را نمي توان بصورت public يا private و ... تعريف كرد و براي هر متغيير بايد نحوه دسترسي به آن نيز مشخص شود.

تفاوت سوم:
بر خلاف C++ در C# تابع destructor وجود ندارد و خود C# مسئول از بين بردن يك شي مي باشد كه اين از بين بردن با توجه به محدوده تعريف اين شي انجام مي شود. البته تعريف destructor وجود دارد ولي نمي توان destructor را فراخواني كرد . در C++ فراخواني Destructor با استفاده از عملگر delete قابل انجام بود ولي چون C# مديريت object ها را خود بعهده مي گيرد شي ايجاد شده نميتواند توسط برنامه خراب شود. اين مطلب در مقالات بعدي مورد بررسي قرار خواهد گرفت.
با توجه به تفاوتهاي ذكر شده مي توان اين كلاس را به صورت زير براي يك كلاس C# ارائه كرد.

// Test.cs
using System;
namespace NS
{
publicclass CTest
{
privateint m_at1;
public float m_at2;
privateint f1()
{
return m_at1;
}
public int f2()
{
return m_at1+(int)m_at2;
}
public CTest()
{
m_at1 = 0;
m_at2 = 0.0f;
}
~Test()
{
// Console.WriteLine("destructor call");
}
}
}

ايجاد يك كلاس در ++ و #
در موقع استفاده از يك كلاس اگر از default constructor براي ايجاد يك كلاس استفاده مي شود در C# بايد constructor بصورت void فراخواني شود ( مانند توابع void معمولي)
به مثال زير دقت كنيد.
// C++ code
CTest *a;
a = new CTest;

// C# Code
CTest a;
a = new CTest();

ذكر اين نكته ضروري است كه در C# وقتي كلاسي تعريف مي شود در واقع اشاره گر به آن كلاس معرفي مي شود بنابراين با تعريف CTest a كلاسي از CTest ايجاد نمي شود و فقط يك اشاره گر از CTest تعريف مي شود و براي ايجاد يك كلاس استفاده از عملگر new اجباري است.
ولي در C++ تعريف CTest a به منزله ايجاد يك كلاس و فراخواني Default Constructor مي باشد.
mohammad moradi
mohammad moradi
Admin
Admin

تعداد پستها : 220
تاريخ التسجيل : 2009-10-31

بازگشت به بالاي صفحه اذهب الى الأسفل

سوال امتیاز دار Empty جواب

پست  Admin الخميس نوفمبر 19, 2009 12:55 pm

جوابتون ساده باشه من نمی تونم این همه جواب رو بخونم یک نمونه عملی کلاس فقط در #c می خوام.
Admin
Admin
Admin
Admin

تعداد پستها : 49
تاريخ التسجيل : 2009-10-22

https://itghorveh.forumfa.net

بازگشت به بالاي صفحه اذهب الى الأسفل

سوال امتیاز دار Empty رد: سوال امتیاز دار

پست  BARAN الخميس نوفمبر 19, 2009 2:57 pm

كلاس تعريفي است كه براي يك نوع خاص از شي ء به كار مي رود .كلاس ها را عموماً در دنياي واقعي نمي توان نشان داد و براي نشان دادنشان بايد آنها را نمونه سازي كرد.(عمل ايجاد يك نمونه جديد از يك كلاس را نمونه سازي مي گويند ).
يك كلاس از كدهاي لازم براي ذخيره و نگهداري مقادير خاصيت ها ،انجام دادن متدها،تعيين زمان رخ دادن رويدادها و... تشكيل شده است.
ايجاد يك كلاس در زمان طراحي برنامه ،زماني كه در حال نوشتن كد برنامه هستيد صورت مي گيرد اما نمونه سازي اشياء ازكلاس در زمان اجراي يك برنامه ،هنگامي كه برنامه بخواهد از آن شيء استفاده كند صورت مي گيرد.
يك كلاس از ابتدا وجود دارد ،اما يك شيء فقط هنگامي وجود دارد كه بخواهد استفاده شود .پس از اتمام كار شيءاز حافظه پاك مي شود.


مثال: flower


Namespace //اعلان

using System;

// كلاس آغازين برنامه

class WelcomeCSS

{

// آغاز كار اجراي برنامه

public static void Main()

{

// نوشتن متن در خروجي

Console.WriteLine("Welcome to the C# Station Tutorial!");

}

}

تعريف كلاس، شامل تعريف داده‌ها(متغيرها) و متدها جهت اجراي برنامه است. يك كلاس، جزو معدود عناصر زبان C# است كه بوسيلة آن مي‌توان به ايجاد يك شي (Object) از قبيل واسط‌ ها (Interfaces) و ساختارها(Structures)، پرداخت.
متد درون اين كلاس بيان مي‌كند كه اين كلاس چه كاري را پس از اجرا شدن انجام خواهد داد. كلمة كليدي Main() كه نام متد اين كلاس نيز مي‌باشد جزو كلمات رزرو شده زبان C# است كه مشخص مي‌كند برنامه از كجا بايد آغاز به كار نمايد. وجود متد Main() در تمامي برنامه‌هاي اجرايي ضروري است. در صورتيكه يك برنامه حاوي متد Main() نباشد بعنوان توابع سيستمي همانند dll هاي ويندوز در نظر گرفته مي‌شود. flower

BARAN
کاربر متوسط
کاربر متوسط

تعداد پستها : 35
تاريخ التسجيل : 2009-11-03

بازگشت به بالاي صفحه اذهب الى الأسفل

سوال امتیاز دار Empty کلاس در #c:

پست  parisamoradi الإثنين نوفمبر 23, 2009 11:11 am

کلاس در #c:
کلاس غالبی است که برای اشیایی با ویژگی های یکسان به کار می رود . وقتی در c# برنامه می نویسید ، فقط یک شی را تعریف نمی کنید . بلکه دسته ای اشیا را به صورت یک کلاس تعریف می کنید . به عنوان مثال ، ممکن است کلاسی به نام درخت داشته باشید که ویژگی های تمام درختان را توصیف کند :
• برگ و ریشه دارند.
• رشد می کنند.
• کلروفیل تولید می کنند.
این کلاس درخت ، به عنوان یک مدل انتزاعی برای مفهوم درخت عمل می کند . برای اینکه شی ء ای در برنامه داشته باشید و با آن کار کنید ، باید نمونه دقیقی از کلاس را ایجاد کنید.
کلاس ها برای ایجاد اشیا به کار می روند و در برنامه با اشیا کار خواهید کرد . کلاس درخت برای ایجاد اشیای گوناگونی از درخت به کار می رود که هر درخت می تواند ویژگی خاصی داشته باشید :
• کوتاه یا بلند باشد.
• خلوت یا پر برگ باشد.
• میوه بدهد یا خیر .
گرچه این اشیا با یکدیگر فرق می کنند ، صفات مشترکی دارند که مشخص می کند به نحوی با هم مرتبط اند .
Rolling Eyes
parisamoradi
parisamoradi
کاربر متوسط
کاربر متوسط

تعداد پستها : 23
تاريخ التسجيل : 2009-11-14

بازگشت به بالاي صفحه اذهب الى الأسفل

سوال امتیاز دار Empty مصطفی رستمی

پست  mostafa Rostami الإثنين نوفمبر 30, 2009 1:55 am

چون سي شارپ تمام سر و كارش با كلاس ھا است بنابراين بايد در مورد نحوه ي تعريف و استفاده از آنھا
تسلط كافي داشته باشیم.
يك پروژه ي جديدconsole درVS.NET باز كنید و نام آنرا در ابتداex03 وارد نمائید
بعد از باز شدن پروژه ، از Project گزینه ای Add class را انتخاب كنید تا كلاسي جديد به نام clsDate.cs را اضافه نمايیم. ساختار فايل ايجاد شده توسطVS.NET به صورت زير است :
using System;
namespace ex03
{
/// <summary>
/// Summary description for clsDate.
/// </summary>
public class clsDate
{
public clsDate()
{
//
// TODO: Add constructor logic here (chashm!)
//
}
تابع يا متدclsDate كه در اينجا به صورت پیش فرض ايجاد شده است اصطلاحا سازنده constructoنام دارد. اين تابع ھر بار كه يك شيء جديد از كلاس مي سازيم به صورت خودكار اجرا مي شود.
از اين كلاس مي خواھیم براي نمايش تاريخ/ ساعت و غیره استفاده كنیم
براي مثال مي خواھیم تاريخ جاري سیستم را به صورت يك خاصیت از اين كلاس دريافت كنیم . براي اين منظور كد زير را به برنامه اضافه مي نمايیم
public string currentSystemDate
{
get
{
return System.DateTime.Today.ToString() ;
}
mostafa Rostami
mostafa Rostami
کاربر عادی
کاربر عادی

تعداد پستها : 26
تاريخ التسجيل : 2009-10-24

بازگشت به بالاي صفحه اذهب الى الأسفل

بازگشت به بالاي صفحه

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد