ডিফল্ট স্ট্রিং সূচনা: শূন্য বা খালি? [বন্ধ]


130

আমি সবসময় আমার স্ট্রিংগুলি NUL- তে শুরু করেছিলাম, এই ভেবে যে NULL মানে একটি মান এবং "" বা স্ট্রিংয়ের অনুপস্থিতি mp এফটি একটি বৈধ মান। কোডটির ইদানীং আমি আরও উদাহরণ দেখেছি যেখানে স্ট্রিং.এম্পটিটি ডিফল্ট মান হিসাবে বিবেচিত হয় বা কোনও মান প্রতিনিধিত্ব করে না। এটি আমাকে বিজোড় হিসাবে আঘাত করে, সি # তে সদ্য যুক্ত হওয়া যুক্তযোগ্য প্রকারের সাথে দেখে মনে হচ্ছে আমরা 'কোনও মূল্য নেই' উপস্থাপনের জন্য এনইউএলএল ব্যবহার না করে স্ট্রিংগুলির সাথে পেছনের দিকে এগিয়ে চলেছি।

আপনি ডিফল্ট সূচনা হিসাবে কী ব্যবহার করবেন এবং কেন?

সম্পাদনা: উত্তরের উপর ভিত্তি করে আমি আমার আরও চিন্তাভাবনা আরও বাড়িয়ে তুলি

  1. ত্রুটি পরিচালনায় এড়ানো যদি মানটি শূন্য না হয় তবে এটি কেন NULLপ্রথম স্থানে সেট হয়ে গেল ? সম্ভবত আপনার বাকী কোডবেজটি coverেকে রাখার পরিবর্তে যেখানে এটি ঘটে থাকে সেখানে ত্রুটিটি চিহ্নিত করা ভাল?

  2. নাল চেকগুলি এড়ানো যদি আপনি কোডটিতে নাল চেকগুলি করতে ক্লান্ত হয়ে থাকেন তবে নাল চেকগুলি বিমূর্ত করা কি ভাল হবে না? সম্ভবত স্ট্রিং পদ্ধতিগুলিকে NULLনিরাপদ রাখতে মোড়ানো (বা প্রসারিত করুন!) ? আপনি যদি নিয়মিতভাবে ব্যবহার করেন String.Emptyএবং আপনার সিস্টেমে প্রবেশের সময় যদি কোনও শূন্যতা ঘটে তবে কী ঘটবে, আপনি কীভাবে NULLচেক যুক্ত করা শুরু করেন ?

আমি সাহায্য করতে পারছি না তবে মতামতটিতে ফিরে যেতে পারি যে এটি অলসতা। কোনও ডিবিএ আপনাকে nullতার \ তার ডাটাবেসের পরিবর্তে '' ব্যবহার করা হলে মূর্খতার জন্য নয়টি উপায়ে চড় মারবে । আমি মনে করি যে একই নীতিগুলি প্রোগ্রামিংয়ে প্রয়োগ করা হয় এবং তাদের মাথা কেটে ফেলার জন্য এমন কাউকে থাকা উচিত যারা কোনও মূল্য উপস্থাপন করার String.Emptyপরিবর্তে ব্যবহার করে NULL

সম্পর্কিত প্রশ্নগুলি


'দ্য সনে'? আমার জানা ডানা হওয়া উচিত নয়।
vfilby

@ জোয়েল, জিম বা জিআইআর সম্পর্কে কত লোকের কোনও ধারণা নেই তা দেখে আমি অবাক হয়েছি আমি আমার এমন কয়েকজন বন্ধুকেও বিস্মিত করে যারা এটি ঘৃণ্য বলে মনে করে। এটি নিখুঁত মঙ্গল হিসাবে বলা হচ্ছে না, তবে সেখানে রসবোধের দুর্দান্ত অলঙ্কার রয়েছে।
vfilby

আমি জানি, তবে কখনও কখনও অন্যথায় ভান করা মজাদার।
দানা দ্য সনে

1
আমি এই সমস্যাটি এমভিসি ফর্ম সংগ্রহ বা সেশন ভেরিয়েবলগুলিতে প্রচুর পরিমাণে চালিয়েছি, আমি খুঁজে পেলাম সবচেয়ে দরকারী জিনিসটি নালকে স্ট্রিংয়ে রূপান্তর করা ছিল mp এফটি দিয়ে ?? শর্টহ্যান্ড, এবং তারপরে স্ট্রিং অপারেশন যা প্রয়োজন তা প্রয়োগ করুন। যেমন। (আইটেম ?? স্ট্রিং। এম্পটি)। ট্রিম ()। টুপার ()
সোনজ

4
এটা গঠনমূলক নয় ??
নওফাল

উত্তর:


111

"খালি" এবং NULL এর মধ্যে পার্থক্য করার জন্য +1। আমি সম্মত হই যে "খালি" এর অর্থ "বৈধ, তবে ফাঁকা" এবং "NUL" অর্থ "অবৈধ" হওয়া উচিত।

সুতরাং আমি আপনার প্রশ্নের উত্তর এইভাবে দেব:

খালি যখন আমি একটি বৈধ ডিফল্ট মান চাই যা পরিবর্তিত বা নাও হতে পারে উদাহরণস্বরূপ, ব্যবহারকারীর মধ্য নাম।

পরবর্তী কোডটি মানটি সুস্পষ্টভাবে সেট না করে যদি এটি ত্রুটি হয় তখন নাল


11
দুজনের মধ্যে বাস্তবে কোনও পার্থক্য থাকলে NUL এবং খালি মধ্যে পার্থক্য করা দুর্দান্ত। অনেকগুলি ক্ষেত্রে রয়েছে, যেখানে কোনও পার্থক্য নেই এবং এইভাবে একই জিনিসকে উপস্থাপনের দুটি উপায় থাকা একটি দায়বদ্ধতা।
গ্রেগ ছোট ছোট

6
@ গ্রেগ: যদিও আমি একমত যে বিভিন্ন ধরণের বিভ্রান্তির সম্ভাবনা রয়েছে তবে এটি একটি দুর্দান্ত সম্পদও হতে পারে। বৈধ এবং অবৈধ মানগুলির মধ্যে পার্থক্য করার জন্য "" বা NULL রচনার সহজ, ধারাবাহিক কনভেনশনটি আপনার কোডটি বুঝতে সহজ করে তুলবে। এ কারণেই আমি সর্বদা "if (var)," if (var! = NULL) "এবং" if (var! = 0) "এর সাথে পূর্ণসংখ্যার সাথে ইন্টিজারগুলি দিয়ে বুলিয়ান পরীক্ষা করি - সেগুলি সংকলককে একই বোঝায়, তবে তারা অতিরিক্ত তথ্য বহন করে যা দরিদ্র বিকাশকারীকে আমার কোড রক্ষণাবেক্ষণ করতে সহায়তা করে।
অ্যাডাম লিস

32

এমএসডিএন অনুসারে :

Emptyপরিবর্তে মান দিয়ে স্ট্রিংগুলি শুরু করে null, আপনি NullReferenceExceptionঘটনার সম্ভাবনা হ্রাস করতে পারেন ।

IsNullOrEmpty()তবুও সর্বদা ব্যবহার করা ভাল অনুশীলন।


45
কেবলমাত্র আপনি ব্যতিক্রমের সম্ভাবনা হ্রাস করার অর্থ এই নয় যে ব্যতিক্রমটি হওয়া উচিত নয়। যদি আপনার কোড কোনও মানের উপর নির্ভর করে তবে এটি একটি ব্যতিক্রম ছুঁড়ে ফেলা উচিত!
rmeador

1
অবশ্যই, সেখানে কোন তর্ক নেই। ওটো, আপনি যদি কেবল একসাথে স্ট্রিং সংযোজন করেন ... আমি মনে করি এটি কোডিং শৈলী, অভিজ্ঞতা এবং পরিস্থিতির উপর নির্ভর করে।
তোমালাক

এটি প্রধানত যা আমি ব্যবহার করি তা আলাদা করতেও ব্যবহার করি।
PositiveGuy

3
.NET ফ্রেমওয়ার্ক 4+ এর জন্য ইসনুলআরওহাইটস্পেস () ভুলবেন না
কোপস

13

আপনি কেন আপনার স্ট্রিংটি একেবারে শুরু করতে চান? আপনি যখন কোনওটি ঘোষনা করেন তখন আপনাকে কোনও ভেরিয়েবল আরম্ভ করতে হবে না এবং আইএমও, আপনার তখনই করা উচিত যখন আপনি নির্ধারিত মান কোড ব্লকের প্রসঙ্গে বৈধ হয়।

আমি এটি অনেক দেখতে:

string name = null; // or String.Empty
if (condition)
{
  name = "foo";
}
else
{
  name = "bar";
}

return name;

নাল থেকে আরম্ভ না করা ঠিক তত কার্যকর হবে। তদতিরিক্ত, বেশিরভাগ ক্ষেত্রে আপনি একটি মান নির্ধারিত করতে চান। নাল থেকে শুরু করে, আপনি সম্ভাব্যভাবে কোড পাথগুলি মিস করতে পারেন যা কোনও মান নির্ধারণ করে না। তাই ভালো:

string name = null; // or String.Empty
if (condition)
{
  name = "foo";
}
else if (othercondition)
{
  name = "bar";
}

return name; //returns null when condition and othercondition are false

আপনি যখন শূন্য করতে আরম্ভ করবেন না, তখন সংকলকটি একটি ত্রুটি তৈরি করবে যা এই বলে যে সমস্ত কোড পাথ কোনও মান নির্ধারণ করে না। অবশ্যই এটি খুব সাধারণ উদাহরণ ...

Matthijs


ভিজ্যুয়াল স্টুডিওতে, যা আমি বিশ্বাস করি প্রায় প্রতিটি সি # প্রোগ্রামার ব্যবহার করে, আপনার দ্বিতীয় পরিস্থিতি (ব্যতীত = null) একটি সতর্কতা তৈরি করবে, ঠিক কারণ হিসাবে আপনি বলেছেন - কোনও স্ট্রিংয়ের ডিফল্ট মান নাল কিনা তা বিবেচ্য নয়। আপনি যদি প্রতিটি কোড পাথের মাধ্যমে কোনও অ্যাসাইনমেন্টের গ্যারান্টি না দেন তবে আইডিই (এবং / অথবা আমি মনে করি অন্তর্নিহিত সংকলক [?]) একটি সতর্কতা উত্পন্ন করবে। যদিও সতর্কবাণীগুলি সংকলন রোধ করবে না, তবুও তারা রয়েছে - সহজেই সমাধান করা সমস্যাগুলি ছেড়ে দেওয়া প্রোগ্রামারদের মনোযোগের নিশ্চয়তা দিতে পারে এমন অন্যদেরকে হতাশ করতে সহায়তা করতে পারে
কোড জকি

আমার জ্ঞান, প্রথম পরিস্থিতির আরম্ভের ছাড়া পুরোপুরি খুশি হবে nameথেকে null, (কোন সতর্কবার্তা) কারণ প্রত্যেক কোড পথে একটি মান নির্ধারণ name- সব সেখানে আরম্ভ করার কোন প্রয়োজন
কোড জকি

8

বেশিরভাগ সফ্টওয়্যারের জন্য যা আসলে স্ট্রিং-প্রসেসিং সফ্টওয়্যার নয়, প্রোগ্রাম লজিকের স্ট্রিং ভেরিয়েবলের সামগ্রীর উপর নির্ভর করা উচিত নয়। যখনই আমি কোনও প্রোগ্রামে এরকম কিছু দেখি:

if (s == "value")

আমার একটা খারাপ অনুভূতি হয় কেন এই পদ্ধতিতে একটি স্ট্রিং আক্ষরিক? কি সেটিং s? এটি কি জানেন যে যুক্তি স্ট্রিংয়ের মানের উপর নির্ভর করে? এটি কি জানে যে এটি কাজ করতে নিম্নতর হতে হবে? আমি কি এটি ব্যবহার করে এটি পরিবর্তন করে ঠিক করা উচিত String.Compare? আমি কি একটি তৈরি Enumকরে এতে পার্সিং করব?

এই দৃষ্টিকোণ থেকে, একটি কোডের দর্শনের কাছে পৌঁছে যায় যা খুব সহজ: আপনি যেখানেই সম্ভব স্ট্রিংয়ের বিষয়বস্তুগুলি পরীক্ষা করা এড়াতে পারেন। একটি স্ট্রিংয়ের সাথে তুলনা String.Emptyকরা আসলে এটি একটি আক্ষরিকের সাথে তুলনা করার বিশেষ ঘটনা: এটি করা এড়ানো এমন কিছু যা আপনার যদি না সত্যিই না করেন।

এটি জানার পরে, আমি যখন আমার কোড বেসে এরকম কিছু দেখি তখন আমি জ্বলজ্বল করি না:

string msg = Validate(item);
if (msg != null)
{
   DisplayErrorMessage(msg);
   return;
}

আমি জানি যে Validateকখনই ফিরে আসবে না String.Empty, কারণ আমরা এর চেয়ে আরও ভাল কোড লিখি।

অবশ্যই, পৃথিবীর বাকী অংশগুলি এইভাবে কাজ করে না। যখন আপনার প্রোগ্রামটি ব্যবহারকারী ইনপুট, ডাটাবেসগুলি, ফাইলগুলি এবং এগুলি নিয়ে কাজ করে, তখন আপনাকে অন্যান্য দর্শনের জন্য অ্যাকাউন্ট করতে হবে। সেখানে, বিশৃঙ্খলার উপর আদেশ চাপিয়ে দেওয়া আপনার কোডের কাজ। এই ক্রমের অংশটি জেনে রাখা হচ্ছে যে খালি স্ট্রিংটির অর্থ String.Emptyকখন হওয়া উচিত এবং কখন এর অর্থ হওয়া উচিত null

(কেবলমাত্র আমার পাছার বাইরে কথা বলছিলাম না তা নিশ্চিত করার জন্য, আমি কেবলমাত্র code স্ট্রিং.আইএসনুলআরএম্পটি) এর জন্য আমাদের কোডবেসটি অনুসন্ধান করেছি All এর সবগুলি 54 টি ঘটনা এমন পদ্ধতিতে যা ব্যবহারকারীর ইনপুট প্রসেস করে, পাইথন স্ক্রিপ্ট থেকে মানগুলি ফিরিয়ে দেয়, থেকে প্রাপ্ত মানগুলি পরীক্ষা করে বাহ্যিক এপিআই, ইত্যাদি)


6

এটি আসলে সি # ভাষার একটি ফাঁক গর্ত। কোনও স্ট্রিং নির্ধারণ করার কোনও উপায় নেই যা নাল হতে পারে না। এটি আপনার বর্ণনা করার মতোই সমস্যার সৃষ্টি করে, যা প্রোগ্রামারদের সিদ্ধান্ত নিতে বাধ্য করে যে তাদের নেওয়া উচিত নয়, যেহেতু অনেক ক্ষেত্রে NULL এবং String.Empty এর অর্থ একই জিনিস। এটি, পরে, অন্যান্য প্রোগ্রামারদের NUL এবং স্ট্রিং উভয়ই পরিচালনা করতে বাধ্য করতে পারে mpএম্পটি, যা বিরক্তিকর।

একটি বড় সমস্যা হ'ল ডাটাবেসগুলি আপনাকে সেই ক্ষেত্রগুলি সি # স্ট্রিংয়ে সংজ্ঞায়িত করতে দেয় তবে ডাটাবেস ক্ষেত্রগুলি নাল নয় বলে সংজ্ঞায়িত করা যায়। সুতরাং, সঠিকভাবে উপস্থাপন করার কোনও উপায় নেই, বলুন, একটি ভার্চর (100) একটি সি # টাইপ ব্যবহার করে এসকিউএল সার্ভারে নীল ক্ষেত্র নয়।

অন্যান্য ভাষাগুলি, যেমন # স্পেস # এটিকে অনুমতি দেয়।

আমার মতে, সি # এর একটি স্ট্রিং সংজ্ঞায়িত করতে অক্ষমতা যা নালকে মঞ্জুরি দেয় না এমনভাবে তার পূর্বের অক্ষমতা যেমন কোনও শূন্যকে মঞ্জুরি দেয় না তেমন খারাপ।

আপনার প্রশ্নের সম্পূর্ণরূপে উত্তর দেওয়ার জন্য: আমি সর্বদা ডিফল্ট শুরুর জন্য খালি স্ট্রিং ব্যবহার করি কারণ এটি ডেটাবেস ডেটা টাইপগুলি কীভাবে কাজ করে তার সাথে এটি আরও অনুরূপ। (সম্পাদনা করুন: এই বিবৃতিটি খুব অস্পষ্ট ছিল It এটি পড়তে হবে "আমি যখন ডিইউএলএল একটি অতিশয় রাজ্য হয় তখন ডিফল্ট শুরুর জন্য খালি স্ট্রিংটি ব্যবহার করি, একইভাবে আমি NULL হিসাবে একটি ডাটাবেস কলাম সেট করি না যদি NUL একটি অতিমাত্রায় অবস্থা হয়। একইভাবে , আমার অনেক ডিবি কলামগুলি নাল নয়, হিসাবে সেট আপ করা হয়েছে, সুতরাং যখন আমি সেগুলিকে সি # স্ট্রিংয়ে আনব তখন স্ট্রিংটি খালি হবে বা মান থাকবে না, অন্যথায় বলতে গেলে, আমি কেবল একটি স্ট্রিংকে নূলে আয়ন করি। যদি নালটির একটি অর্থ থাকে যা স্ট্রিংয়ের অর্থ থেকে আলাদা mp এম্পটি, এবং আমি দেখতে পাই যে এই ঘটনাটি সাধারণের চেয়ে কম (তবে এখানে লোকেরা এই মামলার বৈধ উদাহরণ দিয়েছে)))


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

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

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

5

এটা নির্ভর করে.

মানটি অনুপস্থিত কিনা তা কি আপনাকে জানাতে সক্ষম হবেন (এটি কি সংজ্ঞায়িত করা সম্ভব)?

খালি স্ট্রিংটি কি সেই স্ট্রিংয়ের ব্যবহারের জন্য বৈধ মান?

যদি আপনি উভয়কে "হ্যাঁ" উত্তর দিয়ে থাকেন তবে আপনি নাল ব্যবহার করতে চাইবেন। অন্যথায় আপনি "কোনও মূল্য নেই" এবং "খালি স্ট্রিং" এর মধ্যে পার্থক্য বলতে পারবেন না।

যদি আপনার কোনও মূল্য নেই কিনা তা জানা দরকার না তবে খালি স্ট্রিংটি সম্ভবত নিরাপদ, কারণ এটি যেখানেই আপনি ব্যবহার করুন সেখানে নাল চেকগুলি এড়াতে পারবেন।



3

আমি এটি "" বা নালকে সেট করেছি - আমি সবসময় স্ট্রিং.আইএসনুলআরএম্পটি ব্যবহার করে পরীক্ষা করে দেখি, তাই হয় ঠিক আছে।

তবে আমার অভ্যন্তরীণ গীক বলছে যে এর যথাযথ মান হওয়ার আগে আমার এটিকে বাতিল করতে হবে ...



2

এটা কি সম্ভব যে এটি একটি ত্রুটি এড়ানোর কৌশল (পরামর্শ দেওয়া বা না ..)? যেহেতু "" এখনও একটি স্ট্রিং, আপনি এটিতে স্ট্রিং ফাংশনগুলি কল করতে সক্ষম হবেন এটি যদি ব্যর্থ হয় তবে এটি ব্যতিক্রম হতে পারে?


1
এই অজুহাতটি আমি সাধারণত শুনি, কেবল অলসতার মতো শোনাচ্ছে। "আমি এই মানটি যাচাই করতে বিরক্ত করতে চাই না তাই আমি একটি শর্টকাট নিতে চলেছি" এটি আমার কাছে কেমন লাগে মনে হচ্ছে।
vfilby

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

2

আমি সর্বদা তাদের হিসাবে আরম্ভ করি NULL

আমি সর্বদাstring.IsNullOrEmpty(someString) এর মান যাচাই করতে ব্যবহার করি ।

সহজ।


1

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

আমি কেবল তখনই স্ট্রিংটি নালায় সেট করেছিলাম যখন আমার জানতে হবে এটি সেট করা হয়েছে কিনা এবং কোথায় খালি স্ট্রিংটি সেট করতে বৈধ কিছু। অনুশীলনে, আমি এই পরিস্থিতিগুলি বিরল বলে মনে করি।


1

একটি খালি স্ট্রিং একটি মান (কোনও পাঠ্যের টুকরো যা ঘটনাক্রমে কোনও বর্ণ থাকে না) happens নাল কোনও মূল্যই বোঝায় না।

আমি পরিবর্তনগুলি শূন্য করতে শুরু করি যখন আমি ইঙ্গিত করতে চাই যে তারা আসল মানগুলিকে নির্দেশ করে না বা ধারণ করে না - যখন উদ্দেশ্যটি কোনও মূল্য নেই।


1

টমলাক প্রতিক্রিয়াটি পুনরাবৃত্তি করার সময়, মনে রাখবেন যে আপনি যখন শূন্যের একটি প্রাথমিক মানকে একটি স্ট্রিং ভেরিয়েবল বরাদ্দ করেন তখন আপনার ভেরিয়েবল আর স্ট্রিং অবজেক্ট হয় না; সি # তে যে কোনও বস্তুর সাথে একই। সুতরাং, আপনি যদি নিজের ভেরিয়েবলের জন্য কোনও পদ্ধতি বা বৈশিষ্ট্য অ্যাক্সেস করার চেষ্টা করেন এবং আপনি এটি স্ট্রিং অবজেক্ট হিসাবে ধরে নিচ্ছেন তবে আপনি নালারফেরেন্সএক্সেপশন ব্যতিক্রম পাবেন।


1

নাল কেবলমাত্র সেই ক্ষেত্রে ব্যবহার করা উচিত যেখানে মান valueচ্ছিক। মানটি যদি alচ্ছিক না হয় (যেমন 'নাম' বা 'ঠিকানা'), তবে মানটি কখনই শূন্য হওয়া উচিত নয়। এটি ডাটাবেসের পাশাপাশি POCOs এবং ব্যবহারকারী ইন্টারফেসের ক্ষেত্রে প্রযোজ্য। নাল অর্থ "এই মানটি isচ্ছিক এবং বর্তমানে অনুপস্থিত।"

যদি আপনার ক্ষেত্রটি notচ্ছিক না হয় তবে আপনার খালি স্ট্রিং হিসাবে এটি আরম্ভ করা উচিত। এটিকে শূন্য হিসাবে শুরু করার জন্য আপনার অবজেক্টটিকে একটি অবৈধ স্থানে রাখবে (আপনার নিজস্ব ডেটা মডেল দ্বারা অবৈধ)।

ব্যক্তিগতভাবে আমি স্ট্রিংগুলি বরং ডিফল্টরূপে ক্ষুদ্র না হওয়ার পরিবর্তে চাই, তবে পরিবর্তে কেবলমাত্র আমরা যদি "স্ট্রিং?" ঘোষণা করি তবে কেবলমাত্র ছোট হয়। যদিও এটি গভীরতর স্তরে সম্ভবত কার্যকর বা যৌক্তিক নয়; নিশ্চিত না.



0

আমি মনে করি যে কোনও সাইন ইন (বা কোনও প্রোগ্রাম প্রবাহের এই স্থানে ঘটছে না) মানটির জন্য নাল ব্যবহার না করার কোনও কারণ নেই। আপনি যদি আলাদা করতে চান তবে == নাল রয়েছে। আপনি যদি কেবল একটি নির্দিষ্ট মান পরীক্ষা করতে চান এবং এটি নাল বা অন্যরকম কিছু কিনা সেদিকে খেয়াল রাখেন না, স্ট্রিং.একুয়ালস ("এক্সএক্সএক্সএক্স", মাইস্ট্রিংভার) ঠিকঠাক করে।

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