ভিবি.এনইটিতে একটি ক্লাস স্ট্যাটিক চিহ্নিত করা হচ্ছে


85

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

উত্তর:


121

মডিউল == স্থির শ্রেণি

যদি আপনি কেবল এমন একটি শ্রেণি চান যা আপনি উত্তরাধিকারী না হন তবে একটি NotInheritableবর্গ ব্যবহার করুন ; তবে এটি স্থির / ভাগ করা হবে না। আপনি সমস্ত পদ্ধতি, বৈশিষ্ট্য এবং সদস্য হিসাবে চিহ্নিত করতে পারেন Shared, তবে এটি দৃ #়ভাবে সি # তে স্থির শ্রেণীর মতো জিনিস নয়, কারণ এটি সংকলক দ্বারা প্রয়োগ করা হয়নি for

আপনি যদি সত্যিই একটি ভি # স্ট্যাটিক শ্রেণীর সমতুল্য ভিবি. নেট চান, তবে একটি ব্যবহার করুন Module। এটি উত্তরাধিকারসূত্রে প্রাপ্ত হতে পারে না এবং সমস্ত সদস্য, সম্পত্তি এবং পদ্ধতিগুলি স্থির / ভাগ করে নেওয়া হয়।


4
আমি আমার আগের মন্তব্যটি প্রত্যাহার করি। আমি প্রতিবিম্বের একটি মডিউলটির দিকে চেয়ে ছিলাম এবং আইএল এটি সিল হিসাবে দেখায়।
— ম্যাজিক্যাট

27
আপনি কি ভিবার? একটি মডিউল একটি নেমস্পেসের মতো। সমস্ত ভিবি ফাংশন ভিবি'র মডিউলগুলি থেকে আমদানি করা হয় এবং এগুলি সাধারণ ক্ষেত্রগুলিতে উপলব্ধ। আমার মতে ভিবিতে একটি স্ট্যাটিক ক্লাস কোনও মডিউল নয়, এর আলাদা আচরণ রয়েছে। আপনি যদি ভিবিতে 'স্ট্যাটিক ক্লাস' আচরণ চান, আপনার নোটহেনারিবল থাকা উচিত এবং এর সমস্ত সদস্যকে 'ভাগ' করা উচিত, ঠিক তেমনই আপনাকে সি # এর স্ট্যাটিক ক্লাসে করতে হবে, তারা একই আচরণ করবে। একটি মডিউল নয়।
— শিমি ওয়েটজ্যান্ডলার

4
@ শিমি আমি জানি না আমি কীভাবে এই মন্তব্যটি আগে মিস করেছি তবে আপনি ভুল হয়ে গেছেন। উত্পাদিত আইএল দেখুন, এবং মডিউলগুলি স্থির শ্রেণীর মতো হুবহু চিকিত্সা পায়। পুরাতন মানক ক্রিয়াকলাপগুলিকে বৈশ্বিক পরিসরে হাজির করার জন্য ভিবি কেবলমাত্র অতিরিক্ত কাজ করে।
— জোয়েল কোহর্ন

4
@ জোয়েলকোহুর মডিউল since যেহেতু একটি মডিউল অবশ্যই নামস্থানে সরাসরি ঘোষণা করা উচিত ≈≈ স্ট্যাটিক ক্লাস। এর অর্থ হল যে কেউ মডিউল বা শ্রেণিতে মডিউল ঘোষণা করতে পারে না।
— লসম্যানোস

20
সত্য যে মডিউল এবং স্ট্যাটিক ক্লাস শেষ সঙ্গে একই আইএল জানা ভাল, কিন্তু ভিবি অতিরিক্ত @JoelCoehoorn প্রচার করে ধারণকারী নামস্থান করার জন্য একটি মডিউল সদস্যরা। প্রচার দিক যেখানে মডিউল এবং স্ট্যাটিক ক্লাস ব্যবহারিক ব্যবহার এবং এই প্রোগ্রামটিতে করে একটি বৃহদায়তন পার্থক্য পার্থক্য। আমি এখন পর্যন্ত নোটইনারেবল - খালি প্রাইভেট কনস্ট্রাক্টর - সকল সদস্যের সাথে সমাধান সমাধান ভাগ করে নিই কারণ সদস্যরা কেবল ক্লাসের মাধ্যমে পৌঁছতে পারে, যদি আপনি স্থির-শ্রেণীর সমতা অর্জন করার চেষ্টা করছেন তবে এটি আরও সঠিক আচরণ। আইএল আলাদা হতে পারে তবে এটি সত্যই একাডেমিক।
— misha256

51

প্রায় সেখানে. আপনারও ইনস্ট্যান্টেশন রোধ করতে হবে।

NotInheritable Class MyStaticClass

    ''' <summary>
    ''' Prevent instantiation.
    ''' </summary>
    Private Sub New()

    End Sub

    Public Shared Function MyMethod() As String

    End Function

End Class
  • ভাগ করা স্থির শ্রেণির পদ্ধতির মতো।
  • NotIrherable যেমন সিল করা হয়।
  • প্রাইভেট নিউ যেমন স্ট্যাটিক ক্লাস ইনস্ট্যান্ট করা যায় না।

দেখুন:
এমএসডিএন - স্ট্যাটিক ক্লাস এবং স্ট্যাটিক ক্লাসের সদস্যগণ


4
কেন এটি গৃহীত উত্তর নয়? কোড
— স্নিপের

6

আপনি যদি কেবল এমন একটি বর্গ তৈরি করতে চান যা আপনি উত্তরাধিকার সূত্রে পারা যায় না, সি # তে আপনি সিলযুক্ত ব্যবহার করতে পারেন, এবং ভিবিতে নেট নোটইনারেটেবল ব্যবহার করতে পারেন।

স্ট্যাটিকের ভিবি.নেট সমতুল্য ভাগ করা হয়।


আপনি এটির পরিবর্তনশীল এবং কার্যকারিতাটি ভাগ হিসাবে চিহ্নিত করেছেন, ঠিক তেমনই আপনাকে সি # স্ট্যাটিক শ্রেণিতে করতে হবে। নোটইনারহেটেবল হিসাবে চিহ্নিত করা এটি সিল করে দেয়।
— শিমি ওয়েটজ্যান্ডলার

5

আপনি vb.net এ স্ট্যাটিক ক্লাস তৈরি করতে পারেন। সমাধানটি হ'ল

Friend NotInheritable Class DB
    Public Shared AGE As Integer = 20
End Class

এজিই ভেরিয়েবলটি সর্বজনীন স্থিতিশীল, আপনি এটি অন্য কোডেও এটি ব্যবহার করতে পারেন

 Dim myage As Integer = DB.AGE

বন্ধু = সর্বজনীন, নোটইনারেবল = স্থির


4
বন্ধু! = সর্বজনীন, বন্ধু = অভ্যন্তরীণ
— Altair

4
NotInherable! = স্থির, notInheritable == সিল করা
— ম্যাগনাস

myage! = 20 (আর কোনও, দুঃখের সাথে)
— গ্রিম

2

সিএলআর দৃষ্টিকোণ থেকে, সি # স্থির শ্রেণিটি কেবল "সিলড" এবং "বিমূর্ত" শ্রেণি is আপনি কোনও উদাহরণ তৈরি করতে পারবেন না, কারণ এটি বিমূর্ত এবং এটি সিল করা হওয়ায় আপনি এটির উত্তরাধিকারী হতে পারবেন না। বাকি কিছু সংকলক যাদু।

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