Forwarded from برنامه نویسی حرفه ای
Umbrella-CSharp-www.baiat.ir-Delegates-and-Events.pdf
1 MB
Forwarded from C# Programming Guide
فرض کنید کلاس MessageContract شما در یک کامپوننتی قرار دارد که شما به سورس ان دسترسی ندارید یا دسترسی به ان سخت است، ولی شما میخواهید یک تابع برای ان بنویسید، یا بالعکس شما میخواهید برای کلاس string یک تابع بنویسید که بتوانید از ان خروجی MessageContract بگیرید (مثال بالا) شما میتوانید از توابع Extension استفاده کنید. توابع Extension باید static باشند و در کلاس static قرار گرفته باشند.در مثال بالا Success یک تابع Extension است.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
Docs
Extension Methods - C#
Extension methods in C# enable you to add methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type.
Forwarded from C# Programming Guide
در برنامه های مالتی ترد دسترسی به مقادر متغیر ها برای خواندن و نوشتن از حساسیت ویژه ای برخوردار هست، شما فرض کنید دو ترد یا دو core از سی پی یو میخوان مقدار یک متغیر رو بخونن یا توش write کنن، چه اتفاقی میوفته؟ مسلما اگر همزمان اتفاق بیوفته یکی از ترد ها ناتوان هست در اینکه بخواد مقدار رو write کنه.
در واقع استفاده از دستور lock در برنامه های مالتی ترد این امکان رو برای برنامه نویس فراهم میکنه تا به برنامه اجازه نده ترد ها به صورت همزمان از یک متغیر بخونن یا توی اون مقدار بریزن.در این صورت شما میتونید از کلید واژه ی volatile استفاده کنید تا این اتفاق نیوفته.توی کد بالا در حالت ریلیز وقتی شما کلاس رو Dispose کنید مقدار _IsDispose برابر با True نمیشه چون حلقه ی while همیشه در حال خوندن مقدار متغیر _isDispose هست و همزمانی پیش میاد، یعنی برنامه ی شما نمیتونه توی متغیر چیزی بریزه در نتیجه برنامه هرگز به پایان نمیرسه و این باعث بوجود اومدن یک باگ بزرگ توی اپ شما میشه.
پس در نظر داشته باشید توی برنامه های مالتی ترد متغیر هاتون رو volatile تعریف کنید یا از کلید واژه ی lock هم میتونید استفاده کنید.
برای متغیر های long و double و ... نمیتونید از کلید واژه ی volatile استفاده کنید در نتیجه میتونید از Thread.VolatileRead یا Thread.VolatileWrite برای خواندن و نوشتن توی متغیر استفاده کنید.
در واقع استفاده از دستور lock در برنامه های مالتی ترد این امکان رو برای برنامه نویس فراهم میکنه تا به برنامه اجازه نده ترد ها به صورت همزمان از یک متغیر بخونن یا توی اون مقدار بریزن.در این صورت شما میتونید از کلید واژه ی volatile استفاده کنید تا این اتفاق نیوفته.توی کد بالا در حالت ریلیز وقتی شما کلاس رو Dispose کنید مقدار _IsDispose برابر با True نمیشه چون حلقه ی while همیشه در حال خوندن مقدار متغیر _isDispose هست و همزمانی پیش میاد، یعنی برنامه ی شما نمیتونه توی متغیر چیزی بریزه در نتیجه برنامه هرگز به پایان نمیرسه و این باعث بوجود اومدن یک باگ بزرگ توی اپ شما میشه.
پس در نظر داشته باشید توی برنامه های مالتی ترد متغیر هاتون رو volatile تعریف کنید یا از کلید واژه ی lock هم میتونید استفاده کنید.
برای متغیر های long و double و ... نمیتونید از کلید واژه ی volatile استفاده کنید در نتیجه میتونید از Thread.VolatileRead یا Thread.VolatileWrite برای خواندن و نوشتن توی متغیر استفاده کنید.
Forwarded from برنامه نویسی حرفه ای
مدیریت خطاها در سی شارپ
در این بخش از Umbrella Series – CSharp نحوه برخورد با خطاها در سی شارپ را بیان خواهیم کرد. سرفصل مطالب بیان شده به شرح زیر است:
مدیریت خطاها در سی شارپ
بخش های مختلف بلاک try … catch
نکاتی که درباره انواع خطا باید بدانید
چگونگی تشخیص خطا توسط سی شارپ
try … catch تو در تو
کلمه کلیدی throw
انواع خطا
تولید خطای سفارشی
👇 👇 👇 👇
در این بخش از Umbrella Series – CSharp نحوه برخورد با خطاها در سی شارپ را بیان خواهیم کرد. سرفصل مطالب بیان شده به شرح زیر است:
مدیریت خطاها در سی شارپ
بخش های مختلف بلاک try … catch
نکاتی که درباره انواع خطا باید بدانید
چگونگی تشخیص خطا توسط سی شارپ
try … catch تو در تو
کلمه کلیدی throw
انواع خطا
تولید خطای سفارشی
👇 👇 👇 👇
Forwarded from برنامه نویسی حرفه ای
Umbrella-CSharp-www.baiat.ir-Erros-and-Exceptions.pdf
1 MB
Forwarded from برنامه نویسی حرفه ای
جنریک در سی شارپ
در این قسمت از Umbrella Series – CSharp مفاهیم Generic در سی شارپ بررسی خواهد شد. سرفصل مطالب بیان شده به صورت زیر است:
مفهوم Generics
ویژگی ها و مزایای Generics
محدودکننده های پارامتر نوع
اینترفیسهای مربوط به کار با مجموعهها
ICollection
IEnumerable
IList
نمایندههای Generic
yield return
👇👇👇👇👇
در این قسمت از Umbrella Series – CSharp مفاهیم Generic در سی شارپ بررسی خواهد شد. سرفصل مطالب بیان شده به صورت زیر است:
مفهوم Generics
ویژگی ها و مزایای Generics
محدودکننده های پارامتر نوع
اینترفیسهای مربوط به کار با مجموعهها
ICollection
IEnumerable
IList
نمایندههای Generic
yield return
👇👇👇👇👇
Forwarded from برنامه نویسی حرفه ای
Umbrella-CSharp-www.baiat.ir-Generics.pdf
1.1 MB
Forwarded from BPM Talk
هر هفته سه شنبه ساعت 22 الی 23 گفتگوی مدیریت فرآیند کسب و کار با ارائه اساتید، مشاوران و متخصصین برتر ایران
عضویت در گروه:
https://t.iss.one/joinchat/BR1jKj516fwuZSl7Kae4FA
کانال:
@bpmtalk
عضویت در گروه:
https://t.iss.one/joinchat/BR1jKj516fwuZSl7Kae4FA
کانال:
@bpmtalk
Forwarded from BPM - BPMS - BPMN
کارگاه آموزشی مدلسازی فرآیندهای سازمان با استفاده از BPMN2
10 تا 12 آبان 96
کالج دانشگاه فردوسی
گواهینامه مورد تأیید وزارت علوم، تحقیقات و فنآوری
www.college.um.ac.ir @bpm_talk
10 تا 12 آبان 96
کالج دانشگاه فردوسی
گواهینامه مورد تأیید وزارت علوم، تحقیقات و فنآوری
www.college.um.ac.ir @bpm_talk
Forwarded from BPM - BPMS - BPMN
لینک مستقیم ثبت نام دوره آموزشی مدلسازی BPMN2 در سایت کالج دانشگاه فردوسی:
https://pooya.um.ac.ir/educ/exam/index.php?Lan=Fa&Gr=9
امکان ثبت نام از طریق واریز وجه به حساب کالج دانشگاه نیز وجود دارد شماره حساب کالج در پوستر آمده است.
https://pooya.um.ac.ir/educ/exam/index.php?Lan=Fa&Gr=9
امکان ثبت نام از طریق واریز وجه به حساب کالج دانشگاه نیز وجود دارد شماره حساب کالج در پوستر آمده است.
Forwarded from BPM Talk
This media is not supported in your browser
VIEW IN TELEGRAM
نقشه راه استقرار مدیریت فرآیندهای کسب و کار
قسمت اول
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk
قسمت اول
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk
Forwarded from BPM Talk
This media is not supported in your browser
VIEW IN TELEGRAM
نقشه راه استقرار مدیریت فرآیندهای کسب و کار
قسمت دوم
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk
قسمت دوم
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk
Forwarded from BPM Talk
This media is not supported in your browser
VIEW IN TELEGRAM
نقشه راه استقرار مدیریت فرآیندهای کسب و کار
قسمت سوم
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk
قسمت سوم
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk
Forwarded from BPM Talk
This media is not supported in your browser
VIEW IN TELEGRAM
نقشه راه استقرار مدیریت فرآیندهای کسب و کار
قسمت چهارم
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk
قسمت چهارم
ارائه دهنده: مهندس احمد دلیری
—----------------
We Talk about BPM,BPR, BPMS, BPMN, BPMM
www.bpmtalk.ir
@bpmtalk