স্টাইলকপ ডকুমেন্টেশন অনুসারে:
SA1200: ব্যবহারের নির্দেশাবলী মাস্টবিপ্লেডওয়াইথিননামস্পেস
নির্দেশিকা ব্যবহার করে এসি # কারণ একটি স্থানের উপাদানটির বাইরে রাখা হয়েছে।
বিধি বিবরণ এই নিয়মের লঙ্ঘন ঘটে যখন যখন কোনও নির্দেশ নির্দেশক বা কোনও ব্যবহার-উরফ নির্দেশিকা নামের স্থানের বাইরে রাখা হয়, যদি না ফাইলটিতে কোনও নামস্থান উপাদান থাকে না elements
উদাহরণস্বরূপ, নিম্নলিখিত কোডের ফলে এই নিয়ম দুটি লঙ্ঘন হতে পারে।
using System;
using Guid = System.Guid;
namespace Microsoft.Sample
{
public class Program
{
}
}
নিম্নলিখিত কোডগুলি তবে এই বিধি লঙ্ঘনের ফলাফল হিসাবে নয়:
namespace Microsoft.Sample
{
using System;
using Guid = System.Guid;
public class Program
{
}
}
এই কোডটি কোনও সংকলক ত্রুটি ছাড়াই পরিষ্কারভাবে সংকলন করবে। তবে গাইডের কোন সংস্করণ বরাদ্দ করা হচ্ছে তা এখনও পরিষ্কার নয়। যদি নীচের চিত্রের মতো ব্যবহারের নির্দেশকে নেমস্পেসের অভ্যন্তরে স্থানান্তরিত করা হয় তবে একটি সংকলক ত্রুটি ঘটবে:
namespace Microsoft.Sample
{
using Guid = System.Guid;
public class Guid
{
public Guid(string s)
{
}
}
public class Program
{
public static void Main(string[] args)
{
Guid g = new Guid("hello");
}
}
}
কোডটি নিম্নোক্ত সংকলক ত্রুটিতে ব্যর্থ হয়েছে, এতে থাকা লাইনে পাওয়া গেছে Guid g = new Guid("hello");
CS0576: নেমস্পেস 'মাইক্রোসফ্ট.স্যাম্পল'-এ একটি সংজ্ঞা সংঘটিত হয় যার নাম' গাইড '
কোডটি সিস্টেমে একটি উপনাম তৈরি করে G পরে, কোড টাইপ নির্দেশিকাটির উদাহরণ তৈরি করে। এই উদাহরণটি তৈরি করতে, সংকলককে গাইডের দুটি পৃথক সংজ্ঞাগুলির মধ্যে চয়ন করতে হবে। যখন নাম-এলিমেন্টের বাইরে ব্যবহারের-উরফ নির্দেশিকাটি রাখা হয়, তখন সংকলক স্থানীয় নেমস্পেসের মধ্যে সংজ্ঞায়িত গাইডের স্থানীয় সংজ্ঞাটি বেছে নেবে এবং নাম-স্থানের বাইরে সংজ্ঞায়িত ব্যবহার-উরফ নির্দেশকে সম্পূর্ণ উপেক্ষা করবে। দুর্ভাগ্যক্রমে, কোডটি পড়ার সময় এটি স্পষ্ট নয়।
যখন নাম-স্থানের মধ্যে ব্যবহারের-উরফ নির্দেশিকাটি অবস্থান করা হয়, তবে, সংকলকটিকে দুটি ভিন্ন, বিবাদযুক্ত গাইড প্রকারের মধ্যে দুটি একই নামের জায়গার মধ্যে সংজ্ঞায়িত করতে হবে। এই উভয় প্রকারেরই একটি মিলেছে নির্মাণকারী সরবরাহ করে provide সংকলক সিদ্ধান্ত নিতে অক্ষম, সুতরাং এটি সংকলক ত্রুটিটিকে ফ্ল্যাগ করে।
নেমস্পেসের বাইরে ব্যবহারের-উরফ নির্দেশিকাটি স্থাপন করা একটি খারাপ অভ্যাস, কারণ এটি এ জাতীয় পরিস্থিতিতে বিভ্রান্তির কারণ হতে পারে, যেখানে প্রকৃতপক্ষে টাইপের কোন সংস্করণ ব্যবহৃত হচ্ছে তা স্পষ্ট নয়। এটি সম্ভবত একটি বাগ তৈরি করতে পারে যা নির্ণয় করা কঠিন হতে পারে।
নেমস্পেস উপাদানটির মধ্যে ব্যবহার করে-উরফ নির্দেশাবলী স্থাপন করা এটি বাগের উত্স হিসাবে মুছে ফেলে।
- একাধিক নেমস্পেস
একক ফাইলের মধ্যে একাধিক নেমস্পেস উপাদান স্থাপন করা একটি খারাপ ধারণা, তবে এবং যদি এবং এটি করা হয়ে থাকে, তবে ফাইলের শীর্ষে বিশ্বব্যাপী না হয়ে প্রতিটি নামস্থান উপাদানগুলির মধ্যে সমস্ত নির্দেশাবলী ব্যবহার করে রাখা ভাল ধারণা it এটি নামের জায়গাগুলিকে শক্তভাবে স্কোপ করবে এবং উপরে বর্ণিত আচরণের ধরন এড়াতে সহায়তা করবে।
এটি লক্ষণীয় গুরুত্বপূর্ণ যে যখন কোডটি নামপথের বাইরের নির্দেশাবলীর সাহায্যে রচনা করা হয়েছে, তখন এই নির্দেশিকাটি নামের স্থানের মধ্যে স্থানান্তরিত করার সময় যত্ন নেওয়া উচিত, যাতে নিশ্চিত হয়ে যায় যে এটি কোডের শব্দার্থকে পরিবর্তন করছে না। উপরে বর্ণিত হিসাবে, নেমস্পেসের উপাদানটির মধ্যে ব্যবহার করে-উরফ নির্দেশাবলী স্থাপনের ফলে সংকলক বিরোধী প্রকারের মধ্যে এমনভাবে বাছাই করতে সক্ষম হয় যেগুলি যখন নেমস্পেসের বাইরে নির্দেশ রাখে তখন ঘটে না।
কীভাবে লঙ্ঘন ঠিক করা যায় এই বিধি লঙ্ঘন স্থির করতে, সমস্ত નેমস্পেসের এলিমেন্টের মধ্যে নির্দেশনা এবং ব্যবহারের-উরফ নির্দেশাবলী ব্যবহার করে সরান।