অন্যরা যেমন উল্লেখ করেছে, নাল রেফারেন্সে একটি এক্সটেনশন পদ্ধতি কল করার ফলে এই যুক্তিটি বাতিল হয়ে যায় এবং বিশেষ কিছু ঘটবে না। এটি গার্ড ক্লজগুলি লিখতে এক্সটেনশন পদ্ধতিগুলি ব্যবহার করার জন্য একটি ধারণা বাড়ায়।
আপনি উদাহরণগুলির জন্য এই নিবন্ধটি পড়তে পারেন: সাইক্লোমেটিক জটিলতা কীভাবে হ্রাস করবেন: গার্ড ক্লজ সংক্ষিপ্ত সংস্করণটি হ'ল:
public static class StringExtensions
{
public static void AssertNonEmpty(this string value, string paramName)
{
if (string.IsNullOrEmpty(value))
throw new ArgumentException("Value must be a non-empty string.", paramName);
}
}
এটি স্ট্রিং ক্লাস এক্সটেনশন পদ্ধতি যা নাল রেফারেন্সে কল করা যেতে পারে:
((string)null).AssertNonEmpty("null");
কলটি ঠিক কাজ করে কারণ রানটাইম সফলভাবে এক্সটেনশন পদ্ধতিটিকে নাল রেফারেন্সে কল করবে। তারপরে আপনি অগোছালো সিনট্যাক্স ছাড়াই গার্ড ক্লজগুলি প্রয়োগ করতে এই এক্সটেনশন পদ্ধতিটি ব্যবহার করতে পারেন:
public IRegisteredUser RegisterUser(string userName, string referrerName)
{
userName.AssertNonEmpty("userName");
referrerName.AssertNonEmpty("referrerName");
...
}
Cannot perform runtime binding on a null reference
।