পৃথক dlls মধ্যে আংশিক ক্লাস


154

পৃথক ডিএলএলে আংশিক শ্রেণীর দুটি অংশ (একই নামস্থান, একই শ্রেণীর নাম) রাখা কি সম্ভব?


অন্যরা যেমন বলেছে এটি সম্ভব নয়, তবে বিভিন্ন উত্স থেকে নতুন আচরণের সাথে ক্লাস পরিপূরক করার উপায় রয়েছে, আপনি বিভিন্ন ঘরের মধ্যে ঠিক কী করতে চান?
ওজান

আমার ক্ষেত্রে, আমি একটি তৃতীয় পক্ষের লাইব্রেরিতে সংজ্ঞায়িত শ্রেণিতে কয়েকটি স্থিতিশীল পদ্ধতি যুক্ত করতে চাই। বর্ধন পদ্ধতিগুলি কাজ করবে না এবং ইন্টারফেস এবং উত্তরাধিকারও করবে না, কারণ শ্রেণি স্থির। আপনার আংশিক স্থিতিশীল ক্লাস থাকতে পারে তা আবিষ্কার করার পরে আমি এখানে এসেছি এটি সমাবেশগুলি জুড়ে কাজ করে কিনা তা খুঁজে বের করতে এসেছি তবে হায় আফসোস দেখে মনে হচ্ছে এটি কোনওভাবেই কাজ করবে না।
বেন

উত্তর:


232

থেকে দুটিই MSDN -Partial ক্লাস এবং পদ্ধতি :

একই ধরণের অংশ হিসাবে বোঝানো সমস্ত আংশিক ধরণের সংজ্ঞা একই সমাবেশ এবং একই মডিউল (.exe বা .dll ফাইল) এ সংজ্ঞায়িত করতে হবে। আংশিক সংজ্ঞাগুলি একাধিক মডিউল বিস্তৃত করতে পারে না।


36

আংশিক ক্লাসগুলি খাঁটি ভাষার বৈশিষ্ট্য। যখন কোনও অ্যাসেমবিলি সংকলিত হয়, ফাইলগুলি তৈরি করতে টাইপ তৈরি করা হয়। ফাইলগুলি বিভিন্ন সমাবেশে ছড়িয়ে দেওয়া সম্ভব নয়।

আপনি যা করতে চান তার উপর নির্ভর করে আপনার প্রয়োজনটি সম্পাদন করতে আপনি হয়ত এক্সটেনশন পদ্ধতিগুলি ব্যবহার করতে সক্ষম হতে পারেন ।



8

অন্য উত্তরগুলি অপ্রীতিকর "না" সরবরাহ করে যে এই পৃষ্ঠায় অবতরণকারী কেউ দেখতে বা শুনতে চায়নি, তবে আমি অন্য একটি চিন্তায় আক্রান্ত হয়েছি যা এখনও এখানে উল্লেখ করা হয়নি। যদি অ্যাসেম্বলিগুলিতে আংশিক শ্রেণীর অনুমতি দেওয়া হয়, তবে তার দ্বারা রচিত না থাকা বিদ্যমান প্রাইভেট সদস্যদের মধ্যে যে কোনও ব্যক্তি প্রবেশাধিকার পেতে পারে, এইভাবে তাকে সেভাবে এমনভাবে ম্যানিপুলেট করার সুযোগ দেয় যা মূল লেখকের উদ্দেশ্য নয়, এভাবে সমস্ত উত্তরাধিকারী শ্রেণীর কার্যকারিতা বিপন্ন করে তোলে খুব।

শুধু তাই নয়, অন্যান্য অ্যাসেমব্লিতে classes ক্লাসগুলি (এবং তাদের শিশুদের) এটি কাজ করার জন্য পুনরায় সংঘবদ্ধ করা দরকার। সুতরাং যৌক্তিকভাবে বিভিন্ন অ্যাসেমব্লিতে শ্রেণি বিভক্ত করার অনুমতি দেওয়া সম্ভব নয়।


কেউ যদি সত্যিই প্রয়োজন হয় তবে প্রতিচ্ছবিটির মাধ্যমে ব্যক্তিগত সদস্যদের সাথে সহজেই গন্ডগোল করতে পারেন। অ্যাসেমব্লির মধ্যে কোনও শ্রেণি বিভক্ত করা সম্ভব নয় কারণ বিজ্ঞপ্তি সংক্রান্ত রেফারেন্সের অনুমতি নেই এবং শ্রেণীর বিভিন্ন অংশের ইন্টারঅ্যাক্ট করার জন্য তাদের প্রয়োজন হবে।
জার শারদান

6

আপনি যখন কোনও ক্লাসে কোনও আলাদা ডিএলতে কোনও পদ্ধতি যুক্ত করতে চান তখন আপনি এক্সটেনশন পদ্ধতিগুলি ব্যবহার করতে পারেন। এই পদ্ধতির একটি অপূর্ণতা হ'ল আপনি স্থির পদ্ধতি যুক্ত করতে পারবেন না।


3

প্রশ্নটি হল আপনি কেন অন্য সমাবেশে আংশিক শ্রেণি বানাতে চান? আপনি সমাবেশগুলি জুড়ে বিমূর্ত ক্লাস এবং ইন্টারফেসগুলি সংজ্ঞায়িত করতে পারেন, সম্ভবত আপনাকে এটি সন্ধান করা প্রয়োজন।


10
আইএমএইচওও বৈধ মামলা রয়েছে, উদাহরণস্বরূপ: আপনি এমভিসি ফর্ম টীকাগুলি কোনও আলাদা সমাবেশে সংজ্ঞায়িত একটি মডেল শ্রেণিতে যুক্ত করতে চাইতে পারেন। সমাবেশটি কোন প্রসঙ্গে ব্যবহৃত হয় তা নিজেই জানে না, সুতরাং সমাবেশে শ্রেণীর কোনও মন্তব্য নেই any এগুলি এমভিসি প্রসঙ্গে একটি আংশিক শ্রেণিতে যুক্ত করা যেতে পারে যদিও (যদি এটি সম্ভব হত)।
nyi

3
এনআই, কেন কেবল that শ্রেণি থেকে উত্তরাধিকারী হবেনা এবং উপরে আপনার বৈশিষ্ট্যগুলি ঘোষণা করবেন না? আপনি যদি পছন্দ করেন তবে এটি একই নামও বলতে পারেন।
গ্লেনো

0

আপনি সম্ভবত নিজের লাইব্রেরির মধ্যে 3 য় অংশের লাইব্রেরিতে ক্লাসের আশেপাশে একটি র্যাপার ক্লাস তৈরি করতে চান। তারপরে মোড়কের ক্লাসে যে কোনও কার্যকারিতা যুক্ত করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.