سلام دوستان،
از بابت مطرح کردن پرسش زیر عذر خواهی می کنم. من جاوا کار می کنم و بعضی مفاهیم در سی شارپ برایم هنوز مبهم هست.
معنی براکت قبل از متد چیست؟
مثلا :
[somthing]
public static SomeMethod()
{
//
}
سلام دوستان،
از بابت مطرح کردن پرسش زیر عذر خواهی می کنم. من جاوا کار می کنم و بعضی مفاهیم در سی شارپ برایم هنوز مبهم هست.
معنی براکت قبل از متد چیست؟
مثلا :
[somthing]
public static SomeMethod()
{
//
}
سلام
واسه چی عذرخواهی؟ اینجا قراره جواب سوالات همدیگه رو بدیم دیگه. منم خودم نمیدونم واسه چیه اما تو این لینک یه چیزایی نوشته. از دوستان اگه کسی توضیحات تکمیلی داره لطفاً بگه
سلام
یکی از چندین کاربر زیبا Attribute در این است که شما می توانید خود هم Attribute ایجاد کنید
برای مثال شما یک تیم برنامه نویسی دارید , هر برنامه نویس برنامه هایش را به صورت Class به شما تحویل می دهد. اگر بخواهید بدانید که که کدام کلاس مربوط به کدام کاریر است , خوب شما یک بانک اطلاعاتی درست می کنید و نام کلاس +نام هر برنامه نویس + تاریخ درج آن + ..... را در آن اضافه می کنید
ولی چرا لغمه را دور دهان بچرخانیم.
یک کلاس به این صورت داریم:
[AttributeUsage(AttributeTargets.Class)]
public sealed class MyEmployees: System.Attribute
{
private string id;
private string date;
public string ID
{
get { return id; }
set { id = value; }
}
public string Date
{
get { return date; }
set { date = value; }
}
}
سپس هر برنامه نویس کدش را به صورت زیر می نویسد.
[MyEmployees(ID="12345",Date="1389/12/24")]
class Data
{
.....
.....
.....
}
بعد ما می توانیم با استفاده از کلاس System.Reflection برنامه ای مانند بانک اطلاعاتی که در بالا عرض شد بسازیم(یعنی اطلاعات Attribute ها خوانده می شود )
موفق باشی
من نمیدونستم، الان هم نفهمیدم چی شد.
البته مثل اینکه کاردبرد های بیشتری هم داره..
منم متوجه نشدم. گویا کاربرد های متنوعی داره. مثلا یک نمونش در وب سرویس ( ذکر کردن WebMethod در براکت قبل از نام متد) هست.
اگر امکان داره کمی بیشتر توضیح بدین.
ممنون
دوستان کسی نظری ندارد؟؟
aTTRIBUTE یک چیزی!ست که برای علامت دار کردن بخشهایی از کد مانند متد و کلاس به کار میره.
دیگه بستگی به جا و کاربردش داره.
مثلا میخواهی یک متد رو قدیمی اعلام کنی که توسعه گران ازش استفاده نکنند. خب میشه همینجوری بالای سر متد تایپ کرد که برنامه نویس گرامی! این متد عتیقه شده . لطفا از استفاده نکنید یا اینکه میشه از [System.ObsoleteAttribute] استفاده کرد بالای سر اون متد. آنوقت وقتی کامپیایلش میکند این رو هم باهاش کامپایل میکند و مثلا یک پیغام اخطار نشان میدهد برای استفاده از آن متد.
جای دیگر مثلا در یونیت تستینگ بالای سر یک متد یا کلاس مینویسی که این متد مثلا یک TestMethod است پس وقتی میگویی پروژه یونیت تستم رو اجرا کن میفهمد که کدامها رو باید ران کند
جای دیگر مثلا در کار با COM میگویی که یک کلاس InteropServices.ComVisibleAttribute باشد بنابراین tlbexp.exe میداند که چه بکند با آن.
جای دیگر مثلا کنترل نوشته ای ولی میخواهی یک سری پراپرتی های آن دیده نشوند. برایش دوباره از اینها! هست الان حضور ذهن ندارم یک نصفه شب.
جای دیگر مثلا موقع دیباگ کردن میتوانی ازاینها! برایش تعریف کنی که فلان متد رو داخلش نرو برای دیباگ ، از فلان شی که هوار تا پراپرتی داره فقط این دو تا پراپرتی رو برایم در پنجره دیباگ نشان بده و ..
یک دید کلی بود.
ممنون از همه ی کسانی که شرکت کردند.