PDA

View Full Version : سوال: چطوری میشه ساختار عبارات لامبدا تولید(شبیه سازی) کرد؟



حسین شهریاری
چهارشنبه 19 مهر 1391, 14:43 عصر
سلام

من قصد دارم کلاسی بنویسم که توسط اشیاء مشتق شده از اون بشه مانند عبارات لامبدا عمل کرد.
مثلا همین SELECT تکنولوژی LINQ را ببینید...
چطوری میشه اینطوری عمل کرد(یه چیزی تو همین مایه نوشت)؟
یعنی چطوری میشه عبارات لامبدا تولید کرد؟ تا بتونیم اونا را پشت سره هم در غالب یه دستور صدا بزنیم؟

gwbasic
چهارشنبه 19 مهر 1391, 15:29 عصر
من واقعا نمی دونم شما دنبال نوشتن ORM هستید؟ اگه اینطوره به چه دلیل؟ اگه تمرین میکنید این مفاهیم رو اشکالی نداره ولی اینکه چرخ رو دوباره بخواین اختراع کنید جای تعجب داره.

Select , Where, ... که در LINQ استفاده می شود چیزی جز Extension Method نیست و شما می تونید از همینها برای کوئری زدن روی اشیایی که از کلاسهای شما ساخته شده اند استفاده کنید. عبارت لامبدا هم چیزی جز یک Anounymos Method نیست یعنی متد بی نام که قبلا با استفاده از کلمه رزرو شده delegate ایجاد می شد اما اکنون ساده شده و ما می تونیم با<= این کار رو انجام بدیم. درنتیجه همه چیز لازم هست فقط کافیه ازشون استفاده کنید

حسین شهریاری
شنبه 22 مهر 1391, 06:56 صبح
من واقعا نمی دونم شما دنبال نوشتن ORM هستید؟ اگه اینطوره به چه دلیل؟ اگه تمرین میکنید این مفاهیم رو اشکالی نداره ولی اینکه چرخ رو دوباره بخواین اختراع کنید جای تعجب داره.

Select , Where, ... که در LINQ استفاده می شود چیزی جز Extension Method نیست و شما می تونید از همینها برای کوئری زدن روی اشیایی که از کلاسهای شما ساخته شده اند استفاده کنید. عبارت لامبدا هم چیزی جز یک Anounymos Method نیست یعنی متد بی نام که قبلا با استفاده از کلمه رزرو شده delegate ایجاد می شد اما اکنون ساده شده و ما می تونیم با<= این کار رو انجام بدیم. درنتیجه همه چیز لازم هست فقط کافیه ازشون استفاده کنید
سلام قصد بنده اختراع مجدد نیست!
حالا اگه محبت کنین و ساختار Extension Method و Anounymos Method را با یه مثال ساده بفرمایید ممنون میشم.

tooraj_azizi_1035
شنبه 22 مهر 1391, 09:10 صبح
عبارات لاندا:
http://www.farsimsdn.somee.com/Default.aspx?id=189

متدهای بسط یافته:
http://www.farsimsdn.somee.com/Default.aspx?id=145

متدهای بی نام رو به زودی اضافه می کنم.