আমি এমভিসিএন্ট্রিবিড গ্রিড উপাদানটি দেখছি এবং আমি মুগ্ধ, তবু একই সময়ে গ্রিড সিনট্যাক্সে ব্যবহৃত সিন্ট্যাকটিক ট্রিক দ্বারা বিতাড়িত :
.Attributes(style => "width:100%")
উপরের সিনট্যাক্সটিতে উত্পন্ন HTML এর শৈলীর বৈশিষ্ট্যটি সেট করে width:100%
। এখন আপনি যদি মনোযোগ দিন, 'স্টাইল' কোথাও নির্দিষ্ট নেই, এক্সপ্রেশনটির প্যারামিটারের নাম থেকে বাদ দেওয়া হয় ! আমাকে এটি খনন করতে হয়েছিল এবং খুঁজে পেলাম যেখানে 'যাদু' ঘটেছিল:
Hash(params Func<object, TValue>[] hash)
{
foreach (var func in hash)
{
Add(func.Method.GetParameters()[0].Name, func(null));
}
}
সুতরাং প্রকৃতপক্ষে, কোডটি আনুষ্ঠানিক, সংকলন সময়, প্যারামিটারগুলির নাম ব্যবহার করে অ্যাট্রিবিউট নাম-মান জোড়ার অভিধান তৈরি করতে হবে। ফলাফলের বাক্য গঠনটি প্রকৃতপক্ষে অত্যন্ত উদ্বেগজনক তবে একই সময়ে অত্যন্ত বিপজ্জনক। ল্যাম্বডা এক্সপ্রেশনগুলির সাধারণ ব্যবহার পার্শ্ব প্রতিক্রিয়া ছাড়াই ব্যবহৃত নামগুলি প্রতিস্থাপনের অনুমতি দেয় । আমি একটি বইতে একটি উদাহরণ দেখি যা বলে যে collection.ForEach(book => Fire.Burn(book))
আমি জানি আমি আমার কোডটিতে লিখতে পারি collection.ForEach(log => Fire.Burn(log))
এবং এর অর্থ একই জিনিস । তবে হঠাৎ করেই এখানে এমভিসিএন্ট্রিবিড গ্রিড সিনট্যাক্সের সাথে আমি খুঁজে পেয়েছি যে কোডগুলি আমার ভেরিয়েবলগুলির জন্য চয়ন করা নামগুলির ভিত্তিতে সক্রিয়ভাবে দেখায় এবং সিদ্ধান্ত নেয়!
তাহলে কি এই সাধারণ অভ্যাসটি সি # 3.5 / 4.0 সম্প্রদায় এবং ল্যাম্বডা এক্সপ্রেশন প্রেমীদের সাথে? বা একটি দুর্বৃত্ত ওয়ান ট্রিক ম্যাভেরিক আমার সম্পর্কে চিন্তা করা উচিত নয়?