کانال توسعه دهندگان سی شارپ
154 subscribers
32 photos
5 videos
6 files
87 links
اینجا از تجربیاتم توی برنامه نویسی می نویسم🙌
یک عدد دات نت کار
گیت هاب من:
https://github.com/hassanrafatjoo
Download Telegram
سطح دسترسی private به این معنی هست که اون متغیر یا شی یا متد یا هر چیز دیگه ای که ما این رو به عنوان سطح دسترسی قرار بدیم فقط توی همون کلاس قابل استفاده هست و اگر ما بخوایم توی کلاس دیگری استفاده کنیم با مشکل مواجه میشیم حتی اگر یک instance یا نمونه ازش بسازیم

مثال:

public class Class1
{
private string firstName;
}


اگر بخوایم در کلاس دومی استفاده کنیم با مشکل مواجه میشیم:

public class Class2
{
Class1 cls=new Class1();

Console.WriteLine(cls.firstName);
}
احتمالا شما اسم کپسوله سازی یا Encapsulation رو شنیدید

کلا توی سی شارپ به این معنی هست شما باید یه سری چیزا رو از دید بقیه پنهان کنی و مستقیما اجازه ندی استفاده بشه که همین سطح دسترسی privae این کار رو انجام میده
یا اگر بخوام بهتر بگم اون چیزی که شما باید انجام بدید اینه که به صورت عمومی اون مقدار تخصیص داده بشه

مثال:
فرض کنیم میخوایم توی خروجی باقی مانده یه حساب بانکی رو نمایش بدیم کلاس اول ما اینه:

public class BankAccount
{
private decimal balance; از بیرون قابل دسترسی نیست

public void Deposit(decimal amount)
{
if (amount > 0)
balance += amount;
}

public decimal GetBalance()
{
return balance;
}
}


اگر ما بخوایم مستقیم به این شکل بهش دسترسی داشته باشیم این اجازه رو به ما نمیده:


BankAccount acc = new BankAccount();
acc.balance = 10000;

در این حالت خطا میگیریم چون متغیر balance به صورت خصوصی یا private مشخص شده

منطقی ترین کار اینه که این شکلی انجام بدیم:


acc.Deposit(10000); متد عمومی برای اضافه کردن پول به حساب
Console.WriteLine(acc.GetBalance()); گرفتن موجودی


اینجوری خیلی راحت تر هم خونده میشه و ما دیگه حواسمون هست که متد Deposit پول اضافه میکنه به حساب و با متد GetBalance میتونیم موجودی حساب رو بگیریم
از مزیت های کپسوله سازی چیه؟

1️⃣امنیت داده های ما حفظ میشه چون مستقیما بقیه نمیتونن دسترسی داشته باشن
2️⃣بعدا که با API آشنا میشیم اونجا خیلی کاربردیه چون شما ساختار داخل API که تغییر بدی نیازی نیست بقیه جاها به صورت دستی تغییر بدی
3️⃣اعتبار سنجی داده(Data Validation): مثلا حساب بانکی نمیتونه هیچ وقت منفی یا 0 باشه پس خیلی راحت توی کلاس پایه مربوط به حساب بانکی میتونی این مورد رو بررسی کنی و اگر کاربر سعی داشت منفی کنه اجازه این کار رو بهش ندی
سطح دسترسی public

این سطح دسترسی به این معنا هست که شما از اون متد،متغیر،کلاس،property میتونید در بقیه جاها هم استفاده کنید

مثال:


public class Class1
{
public string firstName;
}


کلاس دوم:


public class Class2;
{
Class1 cls1=new Class1();
cls1.firstName="Hassan";
Console.WriteLine(cls1.firstName);
}


بر خلاف private در سطح دسترسی public میتونیم مستقیما به اون متغیر یا متد و... دسترسی داشته باشیم
سطح دسترسی public مثلا کجاها به کارمون میاد؟

زمانی که شما یه متد داری توی یه کلاس دیگه میخوای ازش استفاده کنی

یا میخوای یه کلاس رو داخل یه پروژه ای که چند لایه(Multi Layer) هست استفاده کنی به شدت اهمیت پیدا میکنه

چون دو پروژه در فضای نام(Namespace) های مختلفی هستند و تا زمانی که سطح دسترسی public نباشه قابلیت دسترسی از بیرون رو نداره

داخل api ها هم خیلی کاربردی میشن چرا که اون کلاس هایی که قراره داده یا دیتا برگردونن برا این کار باید سطح دسترسی شون public باشه تا قابل استفاده باشه

بعدا با class library آشنا میشیم و یکی از کاربردهای public رو اونجا می بینیم
اما استفاده زیاد ازش توصیه نمیشه مگر این که مطمئن باشید از این که بیرون حتما باید دسترسی بهش باشه

و کلاس یا متدی که پابلیک باشه زمانی که به شکل public تعریف میشه ممکنه توی جاهای دیگه ای که ازش استفاده شده تاثیر بزاره
سطح دسترسی internal

در واقع مشخص میکنه که این کلاس،اینترفیس یا هر چیز دیگه ای
میتونه داخل همون سولوشن یا اصلا بهتره بگیم داخل اون اسمبلی قابل استفاده هست

فرض کنید پروژه شما چند لایه هست و از چندین تا class library استفاده کردید حالا میخواید کلاس ها فقط توی همون پروژه بتونیم بهشون دسترسی داشته باشیم

مثال:

Solution MyApp

├── Project.Data (Class Library)
│ └── UserData.cs

├── Project.UI (Console App)
└── Program.cs

پروژه با همچنین ساختاری داریم که داخل class library اومدیم یه کلاس ساختیم به اسم UserData



namespace Project.Data
{
internal class UserData
{
public string GetUserName()
{
return "Hassan";
}
}
}


حالا توی پروژه کنسولی UI همچنین چیزی رو می نویسیم:


using Project.Data;

UserData user = new UserData();

خطا میده چون کلاس UserData به صورت internal یا داخلی تعریف شده و نمیشه بهش دسترسی داشت
بعد از انگلیسی از اسپانیولی خوشم میاد خیلی زبان قشنگیه و بر خلاف انگلیسی یه کلمه فقط یه جور تلفظ میشه و فقط یه معنی داره
ممکنه توی کشورهای اسپانیولی زبان فقط حروف متفاوت تلفظ بشن

ولی خیلی زبان قشنگیه دوست دارم یادش بگیرم😅
ادامه آموزش ها متنی باشه یا ویدیویی؟
Anonymous Poll
29%
متنی
47%
ویدیویی
24%
به صورت آنلاین در گوگل میت
کسی که زبان بلد نباشه از نظر من واقعا بی سواده
خود من دو بار عراق رفتم وقتی زبان و فرهنگ یک کشور رو بدونی خیلی راحت میشه باهاشون ارتباط بگیری حتی از همین طریق کاربگیری

زبان انگلیسی و بقیه زبان ها که جای خود داره
اگر مثل خودمم نمیتونی بری کلاس زبان حضوری
هر روز از chatgpt بخواه چند تا کلمه بهت بده برات مثال بزنه توی گرامر هم توضیح بده
👍2
بهترین کاری که میتونی انجام بدی که حقیقتا چه توی برنامه نویسی چه توی زندگی عادی و معمولی خودت رشد کنی
اینه از هر چی که تو رو به هم میریزه دوری کنی

یه بنده خدایی میگفت گروه های تلگرامی قاتل برنامه نویس های جونیور و تازه کار هستن

و راست هم میگفت

به جز دو گروه سی شارپ که دارم هیچ گروه دات نتی دیگه ای عضو نیستم و تا حد امکان دارم هر چی گروه چرت و پرت هست رو ترک میکنم

یاد گرفتن تخصصی و دقیق اینه بری توی گیت هاب و w3school و gpt و اینا ولگردی کنی و سوال بپرسی و مشکلت رو حل کنی

از خیلی این گروه ها آبی گرم نمیشه

کاش حداقل اینم داشت که مثلا آخر هر هفته یه ویس چت یا میت آنلاین وجود داشت که افراد تجربیات خودشون رو در اختیار بقیه قرار میدادن و چهار تا حرف درست و حسابی رد و بدل میشد

حالا که اینجور نیست و ما نمیتونیم کل دنیا رو مثل خودمون کنیم پس بهتره در حد خودمون کارایی که گفتم رو انجام بدیم
👍2
توصیه دیگه ای که دارم اینه جونِ من خودتون رو وابسته به ویدیو نکنید
من خودم برام یکم سخت جا میوفتاد برنامه نویسی غیر همزمان یا Asyncronous و همینطور thread
فقط به خاطر این دو تا رفتم سایت دانشجویار آموزش دیدم و متوجه شدم دقیقا ساختارشون و نحوه استفاده چه شکلیه

اتفاقا متن شما رو خیلی خیلی متخصص تر میکنه. متن محدودیت ویدیو نداره که حوصله ات سر بره

اگر جایی بحثی یادت رفته بود میتونی ویدیو رو ببینی برات یادآوری بشه که این ساختار دقیقا چه شکلی بود


بر شما باد خوندن داکیومنت. به قرآن الان دیگه مثل 5 سال پیش نیست که سختت باشه بخوای با گوگل ترنسلیت که چرت ترجمه میکنه بری جلو

همین الان میدی جی پی تی و میگی برات جوری توضیح بده که انگار داره برا بچه توضیح میده یا این که بهش بگی جوری ترجمه کن که متوجه بشم دقیقا چطوریه


الان هزاران هزار ابزار مفید وجود داره. این همه دستیار هوش مصنوعی. این همه نرم افزار

اگر یه برنامه نویسی سال 87 میخواست یه چیزی یاد بگیره چقدر اذیت میشد الان همش زیر 5 دقیقه هم نمیشه

خیلی تنبل شدیم خیلیی....
👍2
اگر توی خونه هستین و خیلی حواستون پرت میشه لباس بیرون رفتن یا یه جور لباس رسمی بپوشید و بعد با لپ تاپ یا سیستم تون کار کنید

شاید چرت به نظر برسه اما ذهن رو گول میزنی برا این که کار کنی و خودتو در یه شرایط کاری قرار میدی

حتما امتحان کنی
👍1
کانال توسعه دهندگان سی شارپ
https://www.youtube.com/@RahulNath/videos
راهول یه برنامه نویس هندی هست و من که یکی از ویدیوهاش راجع به asp دیدم خیلی خوب و قابل فهم توضیح داده بود

توصیه میکنم توی یوتیوب دنبالش کنید
هیچ چیزی مهم تر از سلامتی نیست
حتی اگر کارفرما همین فردا کارش بخواد لانچ بشه
اصلا و به هيچ وجه سلامتی خودتونو دست کم نگیرید
فردا یه سری نکاتی هست که برا سلامتی روحی و روانی خودمون توی کانال میگم
1
و اما چیزایی که باید همه مون حواسمون باشه تا در کنار کار کردنمون به سلامتی مون هم آسیب نرسه:
1
ورزش کردن رو جدی بگیرید حتی اگر روزی 10 20 دقیقه دویدن یا پیاده روی باشه

اگه اطرافتون کوه هست حتما کوهنوردی برید خصوصا جمعه ها که زمان آزاد هست

حتما بعد از 25 دقیقه یا نیم ساعت کار حتما استراحت کنید

اگر بتونید یه ورزش سنگین مثل فوتبال برید که عالیه من خودمم چند وقتیه میریم زمین چمن اجاره میکنیم برا فوتبال

حتی اگر لپ تاپ یا سیستم قوی ندارید یه بازی خیلی کم حجم که نیاز به گرافیک و سی پی یو قوی نداشته باشه رو نصب کنید

هر چیزی که در توان تون نبود یا حداقل میدونید که فرصت نمیکنید بهش رسیدگی کنید رهاش کنید بره به سلامت روانی خودتون خیلی اهمیت بدید
👍2
نکته بعدی اینه که حتما حتما نور آفتاب رو جدی بگیرید و خصوصا اوایل صبح ( گفته میشه وقتی خورشید داره طلوع میکنه)
چون داریم ساعت های زیادی رو کار میکنیم خیلی مهمه که نور کافی به بدن برسه و واقعا روی انرژی تاثیر داره
1