33
در سیشارپ، برخی از کلاسها به گونهای طراحی شدهاند که نمیتوان از آنها نمونهسازی کرد. این کلاسها معمولاً به دلایل زیر به صورت غیرقابل نمونهسازی تعریف میشوند:
1- کلاسهای ایستا (Static Classes): این کلاسها فقط شامل اعضای ایستا هستند و نمیتوان از آنها نمونهسازی کرد. به عنوان مثال، کلاس Math در سیشارپ یک کلاس ایستا است و شما نمیتوانید از آن نمونهسازی کنید.
2- کلاسهای انتزاعی (Abstract Classes): این کلاسها برای ایجاد یک پایه برای سایر کلاسها طراحی شدهاند و نمیتوان مستقیماً از آنها نمونهسازی کرد. شما باید یک کلاس فرزند از کلاس انتزاعی ایجاد کنید و سپس از کلاس فرزند نمونهسازی کنید.
3- کلاسهای دارای سازندههای خصوصی (Private Constructors): اگر یک کلاس دارای سازندههای خصوصی باشد، نمیتوان از خارج از کلاس از آن نمونهسازی کرد. این روش معمولاً برای پیادهسازی الگوهای طراحی مانند Singleton استفاده میشود.
34
برای استفاده از کلاسهایی که نمیتوان از آنها نمونهسازی کرد، میتوانید به روشهای زیر عمل کنید:
1- کلاسهای ایستا (Static Classes):
- این کلاسها معمولاً شامل متدها و ویژگیهای ایستا هستند که میتوانید مستقیماً از آنها استفاده کنید. به عنوان مثال، برای استفاده از متد Sqrt در کلاس Math:
double result = Math.Sqrt(16);
2- کلاسهای انتزاعی (Abstract Classes):
- ابتدا باید یک کلاس فرزند از کلاس انتزاعی ایجاد کنید و سپس از کلاس فرزند نمونهسازی کنید. به عنوان مثال:
abstract class Animal
{
public abstract void MakeSound();
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Woof!");
}
}
Dog myDog = new Dog();
myDog.MakeSound(); // Output: Woof!
3- کلاسهای دارای سازندههای خصوصی (Private Constructors):
- این کلاسها معمولاً از طریق یک متد ایستا یا یک ویژگی ایستا قابل دسترسی هستند. به عنوان مثال، برای پیادهسازی الگوی Singleton:
public class Singleton
{
private static Singleton instance = null;
private Singleton() { }
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
Singleton singletonInstance = Singleton.Instance;
3.1M حجم رسانه بالاست
مشاهده در ایتا
35
فرض می کنیم مشتری سفارش ساخت برنامه حسابداری تحت ویندوز داده و تیم فنی برای پیاده سازی نرم افزار از دانت فریمورک استفاده می کند بعد از تکمیل، تحویل مشتری می دهد بعد از مدتی مشتری با موفق بودن نرم افزار طبق نیاز بازار، نسخه موبایل را درخواست می کند و تیم فنی طراحی نسخه موبایل از زامارین استفاده می کند در اینجا یک مشکلی به وجود میاد کدهای ui برنامه ویندوز با موبایل فرق می کند و نمی تواند کدهای ویندوز را در زامارین استفده کند ولی کدهای بیزینس همونه، یعنی فرایند های برنامه حسابداری در نسخه ویندوز و موبایل یکیه، مشکل تیم فنی اینه که کدهای مربوط به بیزینس که قبلا برای برنامه تحت ویندوز در دات نت فریمورک نوشته است الان قابل استفاده نیست چون کدی که روی یکی از پیاده سازی های دات نت می نویسد نمی تواند روی بقیه پیاده سازی ها اجرا بشود در این مثال هم نمی تواند کدهایی که برای نسخه ویندوز در دات نت فریمورک نوشته است از همون نسخه موبایل در زامارین استفاده کند و مجبور به همه کدها را از اول در زامارین بنویسد
مایکروسافت برای رفع این مشکل دات نت استاندارد را معرفی کرد که یک لایه قرار می گیرد تمام پیاده سازی های دات نت و کدها را در بین این فریم ورک ها به اشتراک می گذارد پس ما اگر برای Class librariy از نوع دانت استاندارد استفاده کنیم می توانیم کدها را بین همه پیاده سازی های دا نت استفاده کنیم و در زمان کد نویسی صرفه جویی کنیم
به این نکته دقت کنیم که دات نت استاندارد یک فریمورک نیست و فقط Class librariey که در کنار پروژه ها استفاده کنیم
فهرست
فصل اول معرفی سی شارپ
1- زبان برنامه نویسی
2- ویژوال استودیو چیست ؟ و راهنمای نصب
3- ساخت اولین پروژه با هوش مصنوعی
4- معرفی کدهای پیشفرض سی شارپ
5- متغیر ها و عملگر ها در سی شارپ
فهرست
فصل دوم متغیرها
1- write و writeline
2- متن رنگ سبز
3- string
4- int
5- int و string و bool و double و DateTime
6- تبدیل نوع به همدیگر
7- دریافت نام از کاربر
8- دریافت جمع دو عدد
9- میانگین دریافت سه عدد
10- خطا یابی
فهرست
فصل سوم شرط ها
1- دستور شرطی با عملگرهای رابطهای
2- دریافت عدد زوج یا فرد با دستور شرطی
3- دریافت user name و password
4- دریافت نام و فامیل
5- دستور شرطی if روزهای هفته
6- دستور شرطی switch روزهای هفته
7- معرفی کارکتر های ویژه
فهرست
فصل چهارم حلقه ها
1- ساختار حلقه
2- مضرب 3 تا n
3- دریافت اعداد شروع و پایان
4- مقسوم علیه یک عدد
5- دریافت ورودی و مجموع مقسوم علیه
6- حلقه while
7- دریافت نام و تبدیل نام از حروف کوچک به بزرگ
8- حلقه do while
9- چاپ ستاره ساده
10- چاپ ماتریکس
11- چاپ جدول ضرب
12- چاپ ستاره مثلث
13- چاپ ستاره مثلث
14- چاپ ستاره لوزی
15- چاپ X
16- چاپ ستاره مثلث
17- چاپ ستاره مثلث
فهرست
فصل پنجم آرایه ها
1- توضیح آرایه ها
2- توضیح length.
3- دریافت 4عدد
4- دریافت چهار اسم و جستجو
5- دریافت اعداد و اعداد از کوچک به بزرگ مرتب کند
6- دریافت تعداد نام و نام اسامی
7- آرایه دو بعدی
8- حلقه foreach
فهرست
فصل ششم توابع ها
1- توابع ها(متدها)(Functions)
2- انواع توابع
3- مثال در مورد توابع
4- کلمه کلیدی static
5- کلمه کلیدی void
6-کلمه کلیدی return
7- بازگرداندن آرایه
8- توابع سراسری
9- Top-level Statements
10- توابع و Top-level Statements
11- جزئیات بیشتر در مورد توابع
12- جزئیات بیشتر در مورد Top-level Statements
13- کلمه کلیدی public
14- کلمه کلیدی public
15- ساخت ماشین حساب
16- ساخت ماشین حساب با استفاده از توابع
17- ساخت منو و نحوه استفاده از return
18- توابع هم نام Overloading
19- توابع بازگشتی
20- توابع بازگشتی به جای حلقه
21- توابع بازگشتی برای حل مسئله فیبوناچی
22- کلمه کلیدی ref
23- کلمه کلیدی out
24- شمارش enum
25- یک مثال ساده در مورد enum
26- ساختار struct
27- یک مثال کامل از struct
28- یک مثال ساده از struct
29- یک تمرین کامل
30- توابع بازگشتی که خودش را فراخوانی میکند
فهرست
فصل هفتم کلاس ها
1- کلاس ها در سی شارپ
2- سطح دسترسی
3- تفاوت static و نمونهسازی (instance)
4- نمونهسازی (Instantiation)
5- سازندهها (Constructors)
6- سازندهها و کلمه کلیدی this
7- دریافت چند پرسنل و هر پرسنل اسم و فامیل و وب
8- سازندههای static و public
9- تفاوت ها و پرکاربرد ها static و نمونهسازی (instance)
10- ارثبری (Inheritance)
11- یک مثال ارث بری
12- کپسولهسازی (Encapsulation)
13- کپسولهسازی (Encapsulation) و متدهای get و set
14- یک مثال دیگر کپسولهسازی (Encapsulation)
15- متغیر Property متدهای get و set
16- مجموعه عمومی GenericList
17- یک مثال در مورد GenericList
18- اینترفیس (Interface)
19- تفاوت اینترفیس و کلاس
20- یک مثال در مورد اینترفیس
21-دوتا تصویر نشان می دهد که اینترفیس کجاست
22- چند ریختی (Polymorphism)
23- اینترفیس و چند ریختی
24- تغییر قیافه اینترفیس
25- مثال دیگر در مورد GenericList
26- ساخت ساعت شمسی
27- فضای نام (Namespace)
28- دستور using
29- سی شارپ 8.0 استفاده از using
30- سی شارپ 12، دستور using
31- کلمه کلیدی partial
32- کلمه کلیدی internal
33- برخی کلاس ها نمی توان نمونه سازی کرد
34- با مثال کلاس ها نمی توان نمونه سازی کرد
35- آموزش ایجاد Class librariey
36- آموزش نحوه استفاده از اینترفیس
فهرست تو در تو
آموزش سی شارپ مقدماتی
فهرست فصل اول معرفی سی شارپ
فهرست فصل دوم متغیرها
فهرست فصل سوم شرط ها
فهرست فصل چهارم حلقه ها
فهرست فصل پنجم آرایه ها
فهرست فصل ششم توابع ها
فهرست فصل هفتم کلاس ها