'Var' এবং নাল কোলেসিং অপারেটর কতদূর উচিত ?? '' পাঠযোগ্যতা ব্যাহত না করে বিনোদনের জন্য?


23

আমি জানি প্রশ্নের শিরোনামটি খুব সাবজেক্টিভ, তবে আমি ??আমার সহকর্মীদের দ্বারা অপারেটর ব্যবহারের মুখোমুখি হয়েছিলাম, যেখানে একই সাথে আমি varনতুন আপ-কোডিং প্রয়োগ করে খুব খুশি / স্বাচ্ছন্দ্যবোধ করি না ।

??অপারেটরটি ব্যবহারের জন্য দেওয়া যুক্তিটি ছিল, এটি কোডে পঠনযোগ্যতা কেড়ে নেয়।

আমার প্রশ্ন হ'ল, আপনি যখন ব্যবহার শুরু করেন তখন একই জিনিস ঘটে না var?


49
যদি কোনও "বিকাশকারী"?? নাল Coalesce অপারেটরটি ব্যাখ্যা করার পরে বুঝতে না পারে তবে তাদের উত্পাদন কোডের কাছে অনুমতি দেওয়া উচিত নয়।
ক্যাফগিকে

12
আমি আপনাকে অপারেটর থেকে পরিবর্তন করার পরামর্শ দিই ?? ifNullThen। ? ইফসোচুজ হতে পারে,: হ'ল এলসচুজ। + যোগ করা হয়। - বিয়োগফল, যদি না এটি অকার্যকর হয় তবে তা নেতিবাচক। - ডিক্রেমেন্টবেফারউইজিং এবং ডিক্রেমেন্টএফটারউজিংয়ের মধ্যে বিভক্ত। সি ++ এ আপনি ম্যাক্রো দিয়ে এটি করতে পারেন।
লি লুভিয়ের

7
@ শোয়েড: এটাই কি বিড়ম্বনা? ... ঠিক আছে? ... itশ্বর এটি বিদ্রূপ হতে দিন (এবং আমি নাস্তিক)।
স্টিভেন জিউরিস 21

10
@StevenJeuris এটা হতে পারে বিদ্রূপ কিন্তু এটা না বিদ্রূপ
কर्क ব্রডহર્স্ট

1
@ কিরকবারডহર્স্ট: আমি সংশোধন হয়ে দাঁড়িয়েছি , সবসময় এই দুজনকেই বিভ্রান্ত করে চলেছি ।
স্টিভেন জিউরিস

উত্তর:


53

নাল কোলেসিং অপারেটর (??)

ব্যক্তিগতভাবে, আমি এই অপারেটরটি ব্যবহার করার জন্য কোনও ডাউনস্টাইড দেখতে পাচ্ছি না। 'সহজ' থেকে 'জটিল' নতুন অপারেটরগুলির জন্য নিম্নলিখিত তিনটি কোড নমুনা বিবেচনা করুন।

যাদু ছাড়াই:

bool isNameSet = false;
string name;
if ( isNameSet )
{
    Console.WriteLine( name );
}
else
{
    Console.WriteLine( "No name set." );
}

টার্নারি অপারেটর:

bool isNameSet = false;
string name;
Console.WriteLine( isNameSet ? name : "No name set." );

নাল কোলেসিং:

string name = null;
Console.WriteLine( name ?? "No name set." );

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

var কীওয়ার্ড

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

আমি কীওয়ার্ডটি ব্যবহার করি যখন দেখি যে টাইপটি অতিরিক্ত অতিরিক্ত তথ্য দেয় না।

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

শেষ বিবৃতিটির উদাহরণ হিসাবে:

ThisIsSomeSpecializedTypeRightHere duplication =
    new ThisIsSomeSpecializedTypeRightHere();
var justAsReadable =
    new ThisIsSomeSpecializedTypeRightHere();  // Less duplication.

// But I still prefer the following ...
int number = 9;
SomeCreatedType foo = Factory.CreateSomeType();

24
সেই শেষ উদাহরণটি হ'ল যখন ভের কীওয়ার্ডটি এক্সেল করতে পারে। কল্পনা করুন যে কোডটি আপনার কোড জুড়ে ছড়িয়ে পড়েছে। Factory.CreateSomeTypeআয় IEnumerable<SomeType>। একদিন, যে কারণেই হোক না কেন, এটি ফিরে আসে SomeType[]। আপনি যদি ভের ব্যবহার করেছেন তবে এটি কেবল একটি পুনঃনির্মাণ।
পিডিআর

1
কাছাকাছি ভুল উপায়ে সেই উদাহরণটি পেয়েছেন এবং তারপরে খাবার সন্ধান করতে যান। Numpty! একটি ভাল উদাহরণ আপনার ব্যবহার করা হবে। Factory.CreateSomeType()একটি পরিবর্তন কি যদি ISomeType?
পিডিআর

4
@ পিডিআর: এর সম্ভবত সম্ভবত ইন্টারফেসটিও পরিবর্তিত হয়েছে, এবং আচরণটিও সামঞ্জস্য করা / সংযোজন করা দরকার। যদি এটি একটি সাধারণ নাম হয় তবে অবশ্যই আপনার নিজের নাম পরিবর্তন করতে হবে। যদি 'চুক্তি' পরিবর্তন হয়, আমি বরং আমার কোডটি ভেঙে দেখতে পাচ্ছি যাতে আমি কোনও কিছু সামঞ্জস্য করতে পারি কিনা তা আমি দেখতে পাচ্ছি।
স্টিভেন জিউরিস

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

1
@ টম হাটিন, আমরা সবাই জানি nullপুরোপুরি এড়ানো অনিবার্য । তদ্ব্যতীত, আমি যত বেশি বিকল্পগুলির সন্ধান করি null, তত বেশি ব্যবহার করে আমি উপলব্ধি করি nullকখনও কখনও পরিষ্কার সমাধান। আমার প্রদত্ত উদাহরণটি সমস্ত খারাপ আইএমএইচও নয় এবং আমি এটিকে নালার মতো উপযুক্ত ব্যবহার বলে মনে করি find
স্টিভেন জিউরিস

16

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

...
foreach (var message in messages) {
  var label = Factory.CreateLabel();
  label.Text = message;
  Controls.Add(label);
}
...

পাঠ্য সম্পত্তিটি সরবরাহ করার সময় পর্যন্ত লেবেলের প্রকারটি কী তা কে যত্নশীল?


কেউ এটি বোঝার চেষ্টা করছেন এটি উদাহরণস্বরূপ উইনফর্মস লেবেল বা ডাব্লুপিএফ লেবেল কিনা।
স্টিভেন জিউরিস

14
@ স্টিভেন জিউরিস: এটি সাধারণত একটি পরিচিত প্রসঙ্গে তথ্য। যদি তা না হয় তবে আপনি কোডটি ভুল উপায়ে পৌঁছে যাচ্ছেন।
কোডিজম

কেউ জানতে চান যে এটি ডিফল্ট ডাব্লুপিএফ লেবেল বা কোনও কাস্টম লেবেল কিনা? :)
স্টিভেন জিউরিস

14
১. person ব্যক্তির কি এতক্ষণ যত্ন নেওয়া উচিত, যতক্ষণ না এটি কোনও পাঠ্য সম্পত্তির লেবেল রয়েছে? ২. এটি যদি বিরল ক্ষেত্রে অন্যতম হয় তবে তাদের যত্ন নেওয়ার সত্যিই যুক্তিসঙ্গত কারণ রয়েছে, ইন্টেলিসেন্সকে জিজ্ঞাসা করুন। ৩. যদি তারা ইন্টেলিসেন্স ছাড়াই কোনও আইডিইতে কোড সম্পাদনা করে থাকে তবে তাদের সম্ভবত 'ভর' এর চেয়ে বড় অসুবিধা হতে পারে :)
কুটুলু মাইক

4
বিমূর্ত ধারণা খারাপ কেউ।
জিম বাল্টার

16

??অপারেটরের বিষয়ে আমার কোনও গুরুতর মন্তব্য নেই , কারণ আমি কখনই এরকম অপারেটরের সাথে কোনও ভাষা ব্যবহার করি নি। সম্পর্কিত var, রুবি, পাইথন, পার্ল এবং পিএইচপি এর মতো ভাষায় লোকেরা প্রোগ্রাম করে যা পুরোপুরি অন্তর্নিহিত টাইপিং করে থাকে। এই ভাষার নেটিভরা বুঝতে পারে যে ভেরিয়েবলের আনুষ্ঠানিক প্রকারটি সাধারণত অপ্রাসঙ্গিক শব্দ। ভেরিয়েবল কী করতে পারে তার বিষয়ে আপনি আরও আগ্রহী , যেমন এর স্ট্রাকচারাল / হাঁসের ইন্টারফেস।

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

তদ্ব্যতীত, আইএমএইচও varসম্ভব যেখানেই ব্যবহার করা ডিআরওয়ির একটি ভাল উদাহরণ। কোনও কিছুর ধরণ এক এবং কেবলমাত্র এক জায়গায় নির্দিষ্ট করা উচিত এবং তারপরে যখনই এটি প্রচারের প্রয়োজন হয় তখন স্বয়ংক্রিয়ভাবে প্রচার করা উচিত। আপনি যদি ব্যবহার করেন varএবং ভেরিয়েবলের আনুষ্ঠানিক প্রকারের কোনও মুহুর্তে পরিবর্তনের প্রয়োজন হয়, প্রোগ্রামারটি যতক্ষণ না টাইপ-সঠিক, প্রোগ্রামার দ্বারা ম্যানুয়ালি প্রতিটি প্রতিস্থাপনের পরিবর্তে প্রোগ্রামার দ্বারা প্রয়োজনীয় পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে প্রচারিত হবে long । এটি একটি ভাল জিনিস (টিএম)।


13

আমি মনে করি এটি শেষ পর্যন্ত দলের জন্য একটি প্রশ্ন। এটি যদি আমার দলের অন্য কারও কাছে পঠনযোগ্য না হয় তবে আমি এটি ব্যবহার করব না, যদিও উদাহরণের সাথে তাদের বোঝাতে আমি কয়েকবার চেষ্টা করতে পারি বা অ্যানালগাস সংক্ষিপ্ত বিবরণগুলি (যেমন + =) দেখিয়ে তারা আরও পঠনযোগ্য বলে মনে করি।

যাইহোক, যদি একা কাজ করছেন তবে আমি খুঁজে পাব ?? এবং কোনও সীমা ছাড়াই স্বাচ্ছন্দ্যে পাঠযোগ্য var এমন কি

var a = b ?? c ?? d ?? e ?? "";

আমার কাছে বেশ অস্পষ্ট।

টার্নারি অপারেটর এবং dynamicঅবশ্যই এটি একটি আলাদা বিষয়।


4
আমি এখানে 'স্ট্রিং.এম্পটি' ব্যবহার করব।
চাকরী

1
@ জোব, সততার সাথে, আমিও তাই করতাম I আমি সেই স্ট্রিংয়ে কিছু রেখে যাচ্ছিলাম, তখন কিছুই ভাবতে পারিনি :)
পিডিআর

4
var a = b ?? c ?? d ?? e ?? String.Empty ?? "";
লি লুভিয়ের

2
@ কেড আপনি কখনই যথেষ্ট নিশ্চিত হতে পারবেন না। তবে সত্যই, স্ট্রিং.এম্পটি বা "" ব্যবহার করা ব্যক্তিগত পছন্দ। আমি "" ব্যবহার করি কারণ এটি সংক্ষিপ্ত ...
কেরা

12
@ এক্সেড - যদি String.Emptyকখনও ফিরে আসে তবে nullআমরা প্রচুর ভাঙা কোডের একটি নরকে আছি।
জেসি সি স্লিকার

10

ব্যবহারের জন্য দেওয়া যুক্তি ?? অপারেটর ছিল, এটি কোডে পঠনযোগ্যতা কেড়ে নেয়।

সংক্ষেপে এটি সম্পর্কে চিন্তা করে, এই মন্তব্যটি আমাকে মন্তব্য করা ব্যক্তিটিকে বলে, এটি তার পাশাপাশি বোঝে না। এটি সম্ভবত কিছু পরিস্থিতিতে সত্য, তবে সামগ্রিকভাবে, আমি এমন কিছু ছাড় দিচ্ছি না যা সি # দল সম্ভবত "পাঠযোগ্যতা" এর কারণে যুক্ত করার পক্ষে যথেষ্ট গুরুত্বপূর্ণ বলে মনে করেছিল। আমি এটি if(boolean_object)বনাম একই বিভাগে রেখেছি if(boolean_object == true)। কিছু লোকের যুক্তি রয়েছে যে দ্বিতীয়টি আরও বেশি পঠনযোগ্য, তবে বাস্তবে এটি কারও পড়ার / টাইপের জন্য অতিরিক্ত কোড যুক্ত করেছে এবং কিছু পরিস্থিতিতে আরও বিভ্রান্তিকর হতে পারে (মনে করুন if(boolean_object != false))

আমার প্রশ্ন হ'ল, আপনি যখন ভের ব্যবহার শুরু করেন তখন একই জিনিস ঘটে না?

সি # টিম আপনাকে এমন কিছু সংজ্ঞায়িত করার অনুমতি দিয়েছে যা আপনি জানেন যে এটি কী হতে চলেছে। ভেরিয়েবলটি কী হতে চলেছে তা পুরোপুরি নির্ধারণ করার প্রয়োজন না হলে (হয় একেবারে গুরুত্বপূর্ণ যে কোনও রিটার্নিং অবজেক্টটি টাইপ x এর, বা এটি সত্যই পঠনযোগ্য নয়), আমি ব্যবহার করি varvar x = "MY_STRING";আমি জানি এটি দেখার থেকে এটি একটি স্ট্রিং। সত্য সত্যই, আমি সত্যিই এটি যত্নশীল না যে এটি যতক্ষণ না এটি করার দরকার হয় ততক্ষণ এটি একটি স্ট্রিং। ভেরিয়েবল টাইপ সংজ্ঞায়িত করা আমার সুবিধার জন্য, সংকলকটির নয়। যদি কিছু ভুল হয় তবে সংকলকটি আমাকে বলবে যে আমার যখন ভুল ভেরিয়েবল টাইপ থাকে এটি কখন চলে।


0

varLINQ প্রশ্নের - শব্দ, আমার মতে, যার জন্য এটা মূল চালু ছিল পরিস্থিতিতে ব্যবহার bested করা হয়। এই প্রশ্নের মধ্যে, প্রত্যাবর্তিত ফলাফলের ধরণের প্রায়শই কিছু বড় সংশ্লেষিত নাম থাকে যা সময়ের আগে নির্ধারণ করা কঠিন এবং আপনার কোডটি কী করে তা পাঠকের বুঝতে সহায়তা করে না।

যাইহোক, var text = "Some text " + variableName + "some more text."করা কেবল অলস।

সম্পাদনা: @ জর্জি আপনি উদ্দেশ্যমূলকভাবে সরল উত্তরের উপর ঝাঁপিয়ে পড়েছিলেন তবে আলোচনায় কিছুই যোগ করেননি। ঠিক আছে, আরও ভাল উদাহরণের জন্য এটি সম্পর্কে: var items = doc.DocumentElement.FirstChild.ChildNodes;আপনি যদি এর থেকে প্রকারটি বের করতে পারেন তবে আমি আপনাকে একটি কুকি দেব।


18
যদি আপনি "Some text "এটি একটি হিসাবে অনুধাবন করতে না পারেন stringতবে varআপনার কোডে থাকা সংখ্যার তুলনায় আপনার চিন্তার অনেক বড় সমস্যা রয়েছে ।
জার্গ ডব্লু মিটাগ

3
সমস্যাটি নয় var; সমস্যাটি হ'ল ক্রিপি ভেরিয়েবলের নাম "আইটেম"। আপনি যদি একটি ভাল ভেরিয়েবল নাম ব্যবহার করেন তবে এতে কোনও ভুল নেই var
কিরালেস

3
আমি অনুমান করছি (না দেখে) যে আইটেমগুলি এক্সএমএল নোডগুলির সংগ্রহ, যা আমি এক্সএমএল নোডগুলির সংকলনের সমস্ত বৈশিষ্ট্য এবং পদ্ধতি অর্জনের প্রত্যাশা করি এবং এটি আমার জানা দরকার।
কুতুলু মাইক

ভ্যার কী ধরণের এবং কী তা টাইপ করে তা জানতে না পারলে এটির উপরে মাউসটি রেখে দিন। এটি করতে খুব বেশি চিন্তাভাবনা করে না।
scrwtp

1
"এটি কেবল অলস" - এটি এর বিরুদ্ধে কোন যুক্তি নয়। আসলে, এটি মোটেই বুদ্ধিমান নয়।
জিম বাল্টার

0

আমার কাছে ভার ব্যবহারের ক্ষেত্রে একটি মৌলিক সমস্যা আছে।

এই উদাহরণে সবকিছু পাশাপাশি রয়েছে, তবে সমস্যাটি সত্যই শেয়ার্ড লাইব্রেরি বা প্রকল্পগুলির সাথে বড় সমাধানগুলির সাথে।

এই বিবেচনা:

public MyFirstObject GetMeAnObject() {
    return new MyFirstObject();
}

public void MainProgram() {
    var theObject = GetMeAnObject();
    theObject.PerformOperation();
}

যদি অন্য কারও দ্বারা তাদের প্রয়োজন অনুসারে গেটমেঅনবজেক্ট পরিবর্তন করা হয় তবে কী হবে?

public MySecondObject GetMeAnObject() {
    return new MySecondObject();
}

মেইন প্রোগ্রামাম পদ্ধতিতে .PerforOperation () এ একটি বড় লাল ত্রুটি থাকবে। কি হলো? পারফর্মঅপারেশন পূর্বে পুরোপুরি ভাল কাজ করেছে। আমরা ওবজেক্টের পদ্ধতিগুলি দেখি এবং এটি কোনও ট্রেস ছাড়াই অদৃশ্য হয়ে যায়। এটি গতবার ছিল এবং আমাদের সেই পদ্ধতিটি দরকার need আপনি আপনার লেজটি তাড়া করে দীর্ঘ সময় ব্যয় করতে পারেন এবং কেন এটি বোঝার চেষ্টা করে যে, যদি মাইফার্সঅবজেক্টের পারফর্মঅপরেশন নামে একটি পদ্ধতি থাকে তবে এটি এখন দেখা যায় না। প্রত্যেকে "জানেন" যে getMeAnObject একটি MyFirstObject ফেরত দেয়, তাই এটি পরীক্ষা করার কোনও মানে নেই।

আপনি যদি স্পষ্টভাবে TheObject টাইপ করে থাকেন তবে আপনার লাইনটিতে GetMeAnObject কল করার ক্ষেত্রে একটি অবৈধ কাস্ট ত্রুটি হবে এবং এটি অন্ধভাবেই স্পষ্ট হবে যে GetMeAnObject এমন একটি প্রত্যাবর্তন করছে যা আপনি প্রত্যাশা করেন না।

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


10
একজন সহকর্মী পরীক্ষার আওতায় নেই কোডে একটি ব্রেকিং পরিবর্তন করেছিলেন এবং আপনি কি মনে করেন সমস্যাটি var? ভাষাটি এই ধরণের আচরণের বিরুদ্ধে রক্ষা করার প্রত্যাশা করা যায় না - যদি তারা সরাসরি মাইফার্সঅবজেক্টটি সংশোধন করতে পারে? এটি এখনও ভেঙে যেতে পারে তবে কোনও বাক্য গঠন আপনাকে এ থেকে বাঁচাতে পারত না। আমি varএটির একটি শক্তিও বিবেচনা করব : যদি মাই সেকেন্ডঅবজেক্টটি না ফেরার পরিবর্তে আপনি এখন আইএমআইফার্সঅবজেক্টটি ফিরিয়ে দিচ্ছেন তবে কী হবে?
ফোশি

2
"প্রত্যেকে" জানেন "যে getMeAnObject একটি MyFirstObject প্রদান করে, তাই এটি পরীক্ষা করার কোনও মানে নেই।" আমি প্রোগ্রামিংয়ের এমন একটি দৃশ্যের কথা আসলেই ভাবতে পারি না যেখানে আমি ডিবাগিং করা অবস্থায় getMeAnObject আমার স্মৃতিতে নির্ভর করব। যদি আমি পরীক্ষা করে দেখি যে পারফর্মঅপারেশনটি নেই, আমি কোডটি দেখতে পেতাম এবং এটি অন্য শ্রেণীর জন্য নয়। যদি কোনও আইডিইতে ক্লাসটি পপ আপ করে দেয় তবে আমি বস্তুর ধরণটি দেখছি। প্রকৃতপক্ষে, যখন সংকলকটি আমাকে ত্রুটিটি বলবে, তখন এটি বলত যে 'ক্লাস মাইসেকেন্ডঅবজেক্টের কোনও অপারেশন পারফর্ম ওপরেশন নেই'। এটা কীভাবে সবাই জানেন?
মুহাম্মদ আলকারৌরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.