নেমস্পেস হলো সম্পর্কিত কোড একসাথে গোষ্ঠীবদ্ধ করার এবং নামের সংঘর্ষ এড়ানোর একটি উপায়, আর সবচেয়ে তুচ্ছ কোডবেস ছাড়া সাধারণত সব জায়গাতেই এটি থাকে।
এর সিনট্যাক্স নিম্নরূপ:
namespace MyNameSpace
{
public class MyClass {}
public class OtherClass {}
}
নেমস্পেসের ভেতরে থাকা টাইপগুলোকে নেমস্পেসের স্কোপের বাইরে থেকে উল্লেখ করতে হলে টাইপের নামের আগে ডট সিনট্যাক্স বসিয়ে প্রিফিক্স করতে হয়। বিকল্পভাবে, এবং সাধারণত এটাই বেশি করা হয়, আপনি ফাইলের শুরুতে (বা কোনো নেমস্পেসের ভেতরে) একটি using ডিরেক্টিভ রাখতে পারেন, তখন প্রিফিক্স ছাড়াই টাইপ ব্যবহার করা যায়। একই নেমস্পেসের ভেতরে টাইপের নাম কোয়ালিফাই করার দরকার নেই।
namespace MySpace
{
public class MyClass {}
public class Foo
{
public void Bar()
{
var baz = new MyClass();
}
}
}
public class Qux
{
public void Box()
{
var nux = new MySpace.MyClass();
}
}
namespace OtherSpace
{
using MySpace;
public class Tix
{
public void Jeg()
{
var lor = new MyClass();
}
}
}
using MyAlias = MySpace; সিনট্যাক্স দিয়ে আপনি একটি নেমস্পেসের অ্যালিয়াস তৈরি করতে পারেন, আর তারপর যে জায়গাতেই নেমস্পেসটি ব্যবহার করা যেত, সেখানেই অ্যালিয়াসটি ব্যবহার করতে পারেন।
ম্যানেজমেন্ট রিমোট কন্ট্রোল কার প্রকল্পে remote-control-competition ডারউইনীয় নীতি প্রয়োগ করতে শুরু করেছে। ডেভেলপারদের দুটি দলে ভাগ করা হয়েছে, Red এবং Blue, এবং একে অপরের থেকে স্বাধীনভাবে ডিজাইন উন্নত করার দায়িত্ব তাদের দেওয়া হয়েছে। অন্য দলের ডিজাইন-সংক্রান্ত সিদ্ধান্ত নিয়ে তাদের ভাবতে হবে না।
কোডটি একবার দেখে নিতে এবং পরীক্ষার উদ্দেশ্যে এই দুটি প্রচেষ্টাকে কীভাবে সবচেয়ে ভালোভাবে একত্র করা যায় তা বের করতে আপনাকে অনুরোধ করা হয়েছে।
কোডের উদ্দেশ্য আরও ভালোভাবে প্রকাশ করতে অনুগ্রহ করে namespaces ব্যবহার করুন।
বর্তমানে Motor এবং Telemetry-র মতো গুরুত্বপূর্ণ টাইপগুলো, এমনকি RemoteControlCar নিজেও, একটি ঘেরা static ক্লাস <Color>RemoteControlCarTeam-এর ভিতরে নেস্টেড অবস্থায় রয়েছে। ঘেরা ক্লাসটির একমাত্র উদ্দেশ্য হলো একই নামের টাইপগুলোকে প্রোগ্রামে একসঙ্গে থাকতে দেওয়া। একটি নেমস্পেস ব্যবহার করে সেটি আরও ভালোভাবে প্রকাশ করা যায়। পরের অনুশীলনীতে আপনি দেখবেন যে এসব ক্ষেত্রে একটি namespace-এর static class-এর চেয়ে সুবিধা রয়েছে।
ম্যানেজমেন্ট জোর দিয়ে বলছে যে ডেফিনিশনে দল দুটির নাম RedRemoteControlCarTeam এবং BlueRemoteControlCarTeam হওয়াই উচিত, তবুও দলগুলোকে উল্লেখ করার সময় এই নামগুলো বেশ ঝামেলার। গাড়ি তৈরির সময় ছোট আইডেন্টিফায়ার Red এবং Blue ব্যবহার করার একটি উপায় খুঁজে বের করুন।
Exercism-এ সাইন আপ করুন, C# ট্র্যাকের 62টি কনসেপ্ট178টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।