PDA

View Full Version : آموزش: .NET Framework FAQ بخونید ضرر نمی کنید



r00tkit
سه شنبه 28 اردیبهشت 1389, 15:42 عصر
سلام

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

NET Framework FAQ (http://www.andymcm.com/dotnetfaq.htm)

Microsoft .NET: Implement a Custom Common Language Runtime Host for Your Managed App (http://msdn.microsoft.com/en-us/magazine/cc301479.aspx)

Creating a Host to the .NET Common Language Runtime (http://www.codeproject.com/KB/COM/simpleclrhost.aspx?msg=3412678)

r00tkit
سه شنبه 28 اردیبهشت 1389, 15:58 عصر
ادامه ..
از همین وبلاگ:



In this upcoming series of blogposts on "CLR Hosting" I'm going to tell you how you can take benefit of the .NET Framework v2.0's CLR Hosting API in order to take advantage of the power of the CLR inside your own applications. Together with a series on ".NET Framework internals" I have the intention to offer you a collection of posts that answer some common questions I did receive in the last couple of months/years and that I've asked myself too before I decided to dive into this stuff a little deeper.


CLR hosting (http://bartdesmet.net/blogs/bart/archive/tags/CLR+Hosting/default.aspx)

Netsky
سه شنبه 28 اردیبهشت 1389, 16:58 عصر
با تشكر از ميثم جان به خاطر لينك هاي خوبي كه قرار دادن .
بنده يه سوال واسم پيش اومده . البته خيلي سعي كردم از داخل متن همون سايت به جوابم برسم ولي خيلي زبانم خوب نيست . با گوگل ترنسليت هم سعي كردم ولي بازم چيزي دستگيرم نشد .
دليل اين مورد چيه :

What is the difference between == and object.Equals
با تشكر از اساتيد بزرگوار ........

mehdi.mousavi
سه شنبه 28 اردیبهشت 1389, 17:21 عصر
دليل اين مورد چيه :
What is the difference between == and object.Equals


سلام.
برای value type ها، مثل int، byte و ... تفاوتی نمیکنه، اما برای Reference Type ها این دو دستور متفاوت عمل می کنن.

operator == هنگامی استفاده میشه که بخواهید هویت دو Entity رو با هم مقایسه کنید. به این کد دقت کنید:


Font font1 = new Font("verdana", 12f, FontStyle.Bold);
Font font2 = new Font("verdana", 12f, FontStyle.Bold);

Console.Write(font1 == font2); /*FALSE*/
Console.Write(font1.Equals(font2)); /*TRUE*/


اینجا دارم دو تا فونت با مشخصات یکسان ایجاد میکنم. هر دو Verdana با سایز 12 و Bold هستن، پس با عملا با هم برابرن. همونطوریکه در کد فوق میبینید، font1==font2 نیستش، چون Reference به این دو فونت متفاوته. در واقع اونها دارن به دو object متفاوت Refer میکنن.

اما font1.Equals(font2) هستش، چون هر دو فونت Verdana با سایز 12 و Bold هستن.

موفق باشید.

gwbasic
سه شنبه 28 اردیبهشت 1389, 17:38 عصر
با تشكر از ميثم جان به خاطر لينك هاي خوبي كه قرار دادن .
بنده يه سوال واسم پيش اومده . البته خيلي سعي كردم از داخل متن همون سايت به جوابم برسم ولي خيلي زبانم خوب نيست . با گوگل ترنسليت هم سعي كردم ولي بازم چيزي دستگيرم نشد .
دليل اين مورد چيه :

با تشكر از اساتيد بزرگوار ........

چهار روش مقایسه در C#

http://barnamenevis.org/forum/showthread.php?t=203646&highlight=%DA%86%D9%87%D8%A7%D8%B1+%D8%B1%D9%88%D8 %B4+%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87

r00tkit
سه شنبه 28 اردیبهشت 1389, 17:40 عصر
پست همزمان
سلام علی رضا


در value type ها Object.Equals با == فرقی نداره هر دو مقدار رو مقایسه می کنن

ولی در reference types ها با هم فرق دارن

در این توع تایپ ها ==فقط زمانی true برمی گردونه که وقتی هر دو object به یه جا تو heap اشاره کنن برابر این تابع می شه Object.ReferenceEquals یعنی کلا دو object یه چیز باشن
ولی Object.Equals مقدار های دو object رو مقایسه می کنه نه جایی که به هم اشاره می کنن با اینکه string ها reference type هستن ولی موقع مقایسۀ دو رشته ، رویه فرق می کنه

ببین
http://barnamenevis.org/forum/showthread.php?t=184304

البته قبلا تو وبلاگ Eric Lippert دیده بودم (http://blogs.msdn.com/ericlippert/archive/2009/09/28/string-interning-and-string-empty.aspx)

sia_2007
چهارشنبه 29 اردیبهشت 1389, 00:12 صبح
البته تابع equal به هیچ وجه به هوشمند نیست و خوشبختانه قابلیت override داره.
برای مثال شما میتونی بگی که اگه دو تا آبجکت که از کلاس Person ساخته شده اند؛ نام و نام خانوادگیشان یکی است؛ با هم equal هستند؛ حتی اگر جنسیتشان هم فرق کند.
البته این بدیهی است؛ اما خواستم توصیه کنم قابلیت override این متد مفید رو از دست ندید.

saed2006
پنج شنبه 30 اردیبهشت 1389, 14:25 عصر
سلام.
برای value type ها، مثل int، byte و ... تفاوتی نمیکنه، اما برای Reference Type ها این دو دستور متفاوت عمل می کنن.

operator == هنگامی استفاده میشه که بخواهید هویت دو Entity رو با هم مقایسه کنید. به این کد دقت کنید:


Font font1 = new Font("verdana", 12f, FontStyle.Bold);
Font font2 = new Font("verdana", 12f, FontStyle.Bold);

Console.Write(font1 == font2); /*FALSE*/
Console.Write(font1.Equals(font2)); /*TRUE*/


اینجا دارم دو تا فونت با مشخصات یکسان ایجاد میکنم. هر دو Verdana با سایز 12 و Bold هستن، پس با عملا با هم برابرن. همونطوریکه در کد فوق میبینید، font1==font2 نیستش، چون Reference به این دو فونت متفاوته. در واقع اونها دارن به دو object متفاوت Refer میکنن.

اما font1.Equals(font2) هستش، چون هر دو فونت Verdana با سایز 12 و Bold هستن.

موفق باشید.

منظور از مشخصات پارامتر های ورودی هست؟

mehdi.mousavi
پنج شنبه 30 اردیبهشت 1389, 14:33 عصر
منظور از مشخصات پارامتر های ورودی هست؟

منظورم خصیصه های یک کلاس بود. اون خصائصی که میتونه تعیین کنه دو Instance متفاوت از یک کلاس، یکسان هستن یا خیر.

بطور مثال کی میگیم دو Instance از کلاس Pen با هم یکسان هستند؟ وقتی که Brush، Color، Width، Alignment و بقیه خصیصه های هر دو Pen با هم برابر باشن.

موفق باشید.