সি # তে বুল এবং বুলিয়ান ধরণের মধ্যে পার্থক্য কী?


উত্তর:


382

boolযেমন একটি উপনাম System.Booleanঠিক তেমনি intএকটি উপাধি System.Int32। এলিয়াসগুলির সম্পূর্ণ তালিকা এখানে দেখুন: বিল্ট-ইন প্রকারের সারণী (সি # রেফারেন্স)


5
উপরের লিঙ্কটি থেকে মাইক্রোসফ্টস বলেছে যে সি # টাইপ কীওয়ার্ড এবং তাদের এলিয়াসগুলি বিনিময়যোগ্য তবে কেন আমাদের এলিয়াসের প্রয়োজন, আমার দৃষ্টিকোণে বুলিয়ান আরও অর্থবোধক তবে বুল এবং ইন্ট 32 আরও অর্থবোধী তবে ইনট্রেস হয় কেন এলিয়াস ???
অসীম সাজ্জাদ

6
@ আসিম: অলসতা? এটি টাইপিং কম এবং সিস্টেম আমদানির প্রয়োজনীয়তা এড়িয়ে চলে। ব্যক্তিগতভাবে, আমি এলিয়াসগুলি পছন্দ করি। "ইন্ট 32" টাইপ করার চেয়ে "ইনট" টাইপ করা অনেক দ্রুত।
কেন্ট বুগার্ট

8
@ আসমিন: এটি একটি সি জিনিস। সি, সি ++ প্রোগ্রামারগুলির পরিচিত কীওয়ার্ডগুলি ইনট, ফ্লোট ইত্যাদি,
মাইক চেম্বারলাইন

42
@ মাইকি আমি নিশ্চিত যে জাভা ধারাবাহিকতার জন্য এই উপকরণগুলি ব্যবহার করার সিদ্ধান্ত নিয়েছে, এবং মাইক্রোসফ্ট দৃ Java়তার জন্য জাভা ব্যবহার করার সিদ্ধান্ত নিয়েছে ... :-)
সর্বাধিক

19
@ ম্যাক্সওয়েল জাভায়, booleanএবং Booleanএটি একই জিনিস নয়। একটি হ'ল আদিম ডেটা টাইপ এবং অন্যটি একটি অবজেক্ট।
রোসদী কাসিম

48

আমি বিশ্বাস করি না একটি আছে।

bool শুধুমাত্র একটি উপনাম System.Boolean


22

তারা একই এক। বুলিয়ান বুলিয়ানর জন্য কেবল একটি উপনাম।



15

আমি বুঝতে পারি এটি বহু বছর পরে কিন্তু একই প্রশ্নটি সহ আমি গুগল থেকে এই পৃষ্ঠাতে হোঁচট খেয়েছি।

এখন পর্যন্ত এমএসডিএন পৃষ্ঠায় একটি সামান্য পার্থক্য রয়েছে।

VS2005

বিঃদ্রঃ:

আপনার যদি বুলিয়ান ভেরিয়েবলের দরকার হয় যার মানও নালার হতে পারে তবে বুল ব্যবহার করুন। আরও তথ্যের জন্য নুলযোগ্য প্রকারগুলি (সি # প্রোগ্রামিং গাইড) দেখুন।

VS2010

বিঃদ্রঃ:

আপনার যদি বুলিয়ান ভেরিয়েবলের প্রয়োজন হয় যা নালার মানও রাখতে পারে তবে বুল ব্যবহার করবেন ?. আরও তথ্যের জন্য নুলযোগ্য প্রকারগুলি (সি # প্রোগ্রামিং গাইড) দেখুন।


2
আমি এটি দ্বারা বিভক্ত ছিল - এটি ডকুমেন্টেশনে একটি বাগ বলে মনে হচ্ছে। আমি প্রথম ভিএস ২০০৫ পৃষ্ঠাটি দেখেছি (এটি আমার জন্য গুগল র‌্যাঙ্কিংয়ে উচ্চতর প্রদর্শিত হয়!), এবং ভেবেছিল যে এটি বোঝায় যে boolএতে নাল থাকতে পারে, কিন্তু Booleanপারেনি। যদিও পুরানো থেকে নতুন ডকুমেন্টেশনের সাথে একটি লিঙ্ক রয়েছে, আমি একক ?পার্থক্যটি লক্ষ্য করার জন্য নতুন ডকুমেন্টেশন পুরোপুরি পড়িনি ।
লোগান পিকআপ

1
দুঃখিত, তবে এটি ভুল, আপনি বুল বা বোলেয়ানকে নালিতে রূপান্তর করতে পারবেন না কারণ এগুলি হ্রাসযোগ্য প্রকারের
টিমোথি মাচারিয়া

13

তারা একই. বুলিয়ান সি # এবং ভিবি.নেটের মধ্যে এবং পিছনে রূপান্তরকে সহজতর করতে সহায়তা করে। বেশিরভাগ সি # প্রোগ্রামাররা 'বুল' পছন্দ করেন তবে আপনি যদি এমন কোনও দোকানে থাকেন যেখানে ভিবি ডট নেট এবং সি # উভয়ই থাকে তবে আপনি বুলিয়ান পছন্দ করতে পারেন কারণ এটি উভয় জায়গায় কাজ করে।


10

যেমনটি বলা হয়েছে, তারা একই রকম। দুটি আছে কারণ বুল একটি সি # কীওয়ার্ড এবং বুলিয়ান একটি নেট ক্লাস।


তাহলে ক্রস-প্ল্যাটফর্মের সামঞ্জস্যের জন্য বুল ভাল না?
বীপ বীপ


5

বুলিয়ান বুলিয়ান ক্লাসের একটি উপনাম। ক্লাসে কোনও মেথড কল করার সময় আমি ভেরিয়েবল এবং ক্লাসের নাম ঘোষণার সময় ব্যবহার করি।


8
আগ্রহের বাইরে - কেন আপনি উভয় ব্যবহার করবেন? আমি একটি বা অন্যটি ব্যবহার করার পক্ষে পরামর্শ করছি। হয় উপনাম ব্যবহার করুন বা করবেন না, অন্যথায় কোডটি অগোছালো এবং বেমানান দেখাচ্ছে।
কেন্ট বুগার্ট

2
আমার মনে হয় আপনি যখন দুটোই ব্যবহার করবেন না তখন অগোছালো লাগছে। স্ট্যাটিক পদ্ধতিতে অ্যাক্সেস করার সময় ডায়াটাটাইপ ঘোষণার জন্য অ্যালামটি ব্যবহার করুন এবং অ্যাক্টুয়াল ক্লাসের নামটি ব্যবহার করুন: স্ট্রিং x = স্ট্রিং For ফরম্যাট ("আজকের দিন: {0}", ডেটটাইম.নিউ);
স্কট ডরম্যান

1
সুতরাং আপনি এটি করতে চাই: int i = Int32.Parse (...); ? সে নিয়ে আমার বেশ কয়েকটি সমস্যা আছে। প্রথমত, ভিএস ডিফল্টরূপে আলাদাভাবে হাইলাইট করবে (আমি জানি আপনি এটি পরিবর্তন করতে পারেন তবে বেশিরভাগ ডিভস কেবলমাত্র ডিফল্ট সিনট্যাক্স হাইলাইট ব্যবহার করে)। দ্বিতীয়ত, অনুসন্ধানগুলি বিশেষত লম্বা (দীর্ঘ / আন্তঃ 64)) সহ কঠিন হয়।
কেন্ট বুগার্ট

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

5
এলিয়াস এবং শ্রেণীর নামগুলি মিশ্রণ কোডের স্বচ্ছতার সাথে কিছুই যোগ করে না। একটি বাছুন এবং এটির সাথে স্টিক করুন, imho
অ্যারেন ক্ল্যাসেন

2

সেগুলি একই, বুল হ'ল সিস্টেম B বুলিয়ান সংক্ষিপ্ত। আপনি যখন ভিবি নেট প্রোগ্রামার সাথে আছেন তখন বুলিয়ান ব্যবহার করুন, যেহেতু এটি সি # এবং ভিবি উভয়ের সাথেই কাজ করে


1

দ্রষ্টব্য যে Booleanকেবলমাত্র আপনার কাজ করবে using System;(যা সাধারণত হয় তবে অন্তর্ভুক্ত নয়) (যদি আপনি এটি না লিখে থাকেন System.Boolean)। boolদরকার নেইusing System;


0

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

আমি ভৃল ছিলাম; এটি বুলিয়ান এবং বুলিয়ান সহ জাভাতে কাজ করে। সি # তে, বুল এবং বুলিয়ান উভয়ই রেফারেন্স প্রকার। তারা উভয়ই তাদের মানটি ভেরিয়েবলের মধ্যে সরাসরি সঞ্চয় করে, উভয়ই নালাম হতে পারে না এবং উভয়কেই তাদের মানগুলি অন্য ধরণের (যেমন int হিসাবে) সংরক্ষণ করার জন্য "রূপান্তরটিও" পদ্ধতি প্রয়োজন require আপনার কেবল বুলিয়ান ক্লাসের মধ্যে সংজ্ঞায়িত একটি স্ট্যাটিক ফাংশন কল করতে হলে আপনি কোনটি ব্যবহার করবেন তা কেবল তা বিবেচনা করে।


boolএবং Booleanদুটি ভিন্ন ধরনের, যে এক ধরনের একটি রেফারেন্স প্রকার নয় নয়, আপনি যে একটি স্ট্যাটিক পদ্ধতি কল করতে পারেন এক পারেন শনাক্তকারী ব্যবহার টাইপ, এবং আপনি আসলে প্রয়োজন না একটি কল করতে ConvertToএটি আরেক ধরনের রূপান্তর পদ্ধতি।
অগস্ট

2
এটি সঠিক নয় যে " boolএবং Booleanউভয়ই রেফারেন্স ধরণের"। শব্দ boolএবং Booleanউভয়ই একই ধরণের উল্লেখ করে এবং সেই প্রকারটি একটি মান প্রকার, কোনও রেফারেন্স টাইপ নয়।
ট্যানার সোয়েট

ধন্যবাদ, আমি সি # এই ক্ষেত্রে জাভা হিসাবে একইরকম অভিনয় করেছে কিনা তা খতিয়ে দেখার চেষ্টা করছিলাম। আপনি উত্তরটি কেবলমাত্র এটির সাথে এটি জাভাটির সাথে তুলনা করে (যদিও সম্ভবত ইচ্ছাকৃতভাবে নয়)। :)
বিভিডিবি

-1

বুলিয়ান বুলিয়ানের একটি উপনাম। এলিয়াসগুলি যা করে তা কোড সংকলনের ঠিক আগে, পাঠের একটি স্ট্রিং অন্য (যেমন সন্ধান / প্রতিস্থাপন-নোটপ্যাড ++ এ সব) এর সাথে প্রতিস্থাপন করা হয়। রান-টাইমে একে অপরকে ব্যবহারের কোনও প্রভাব নেই।

বেশিরভাগ অন্যান্য ভাষায়, একটি আদিম ধরণের এবং অন্যটি কোনও অবজেক্ট টাইপ (সি # জারগনে মানের ধরণ এবং রেফারেন্স টাইপ) হবে। সি # আপনাকে দুজনের মধ্যে বেছে নেওয়ার বিকল্প দেয় না। আপনি যখন বুলিয়ান শ্রেণিতে সংজ্ঞায়িত একটি স্থিতিশীল পদ্ধতিতে কল করতে চান, এটি স্বয়ং-যাদুতে বুলিয়ানকে একটি রেফারেন্স ধরণের হিসাবে গণ্য করে। যদি আপনি একটি নতুন বুলিয়ান ভেরিয়েবল তৈরি করেন তবে এটি স্বয়ংক্রিয়ভাবে যাদুতে এটিকে একটি রেফারেন্স টাইপ হিসাবে গণ্য করে (যদি না আপনি অ্যাক্টিভেটর.ক্রিয়েটইনস্ট্যান্স পদ্ধতিটি ব্যবহার করেন)।


বুলিয়ান একটি মান প্রকার, কোনও রেফারেন্স টাইপ নয়।
অগস্ট

-2

সম্ভবত বুলিয়ান বুলিয়ান তুলনায় একটি "হালকা"; মজার বিষয় হচ্ছে এটি পরিবর্তন করা:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public bool CanUseOnItems { get; set; }
    }
}

... এটি:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public Boolean CanUseOnItems { get; set; }
    }
}

... আমার সিএস ফাইলটি একটি "সিস্টেম ব্যবহার করে" ফোটাতে সাহায্য করেছে; টাইপটি "বুল" এ পরিবর্তন করার ফলে ব্যবহারের ক্লজের চুল ধূসর হয়ে যায়।

(ভিজ্যুয়াল স্টুডিও 2010, ওয়েবএপিআই প্রকল্প)


এটা System.Booleanবরং ন্যায়বিচার Booleanusing System;দেখানো হয়েছে কারণ এটি অনুমোদিত Booleanসঠিকভাবে হিসেবে ব্যাখ্যা করা System.Boolean। ঠিক কম ভার্বোজের মতো এতটা হালকা নয়।
নাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.