C# টাইপ একটি ক্লাস বা স্ট্রাক্টের স্কোপের ভেতরে ডিফাইন করা যায়। এনক্লোজিং টাইপটি এক ধরনের নেমস্পেসের কাজ করে। ডট সিনট্যাক্স ব্যবহার করে এনক্লোজিং টাইপের মাধ্যমে টাইপটিতে অ্যাক্সেস করা যায়।
class Outer
{
public interface IInner {}
public enum EInner {}
public class CInner {}
public struct SInner {}
}
var outer = new Outer();
var inner = new Outer.CInner();
আপনি ইনার টাইপগুলোর জন্য অ্যাক্সেস লেভেল নির্ধারণ করতে পারেন।
এনক্লোজিং টাইপের প্রাইভেট মেম্বারগুলো ইনার টাইপের মেম্বারদের স্কোপে থাকে, কিন্তু উল্টোটা নয়।
কিছু "অন্য" ডেভেলপার রিমোট কন্ট্রোল কার প্রকল্পটি remote-control-competition নিয়ে কাজ করছিলেন। কোড পরিষ্কার করার জন্য আপনাকে ডেকে পাঠানো হয়েছে।
RemoteControlCar ক্লাসটি রিফ্যাক্টর করে টেলিমেট্রির মেথড ও প্রপার্টিগুলো আলাদা করে ফেলুন, যেগুলো একটি Telemetry প্রপার্টির মাধ্যমে অ্যাক্সেস করা হয়।
var car = new RemoteControlCar();
car.Telemetry.Calibrate();
car.Telemetry.SelfTest();
car.Telemetry.ShowSponsor("Walker Industries Inc.");
car.CurrentSponsor
// => "Walker Industries Inc."
car.Telemetry.SetSpeed(100, "cps");
car.GetSpeed()
// => "100 centimeters per second"
নিশ্চিত করুন যে গাড়ির স্কোপের বাইরে Telemetry ইনস্ট্যান্স তৈরি করা না যায়।
নিশ্চিত করুন যে RemoteControlCar ক্লাসের স্কোপের বাইরে Speed struct ব্যবহার করা না যায়।
নিশ্চিত করুন যে RemoteControlCar ক্লাসের স্কোপের বাইরে SpeedUnits enum ব্যবহার করা না যায়।
Exercism-এ সাইন আপ করুন, C# ট্র্যাকের 62টি কনসেপ্ট178টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।