মধ্যে পার্থক্য কি Convert.ToString()
এবং .ToString()
?
আমি অনলাইনে অনেক পার্থক্য খুঁজে পেয়েছি, তবে প্রধান পার্থক্য কী?
মধ্যে পার্থক্য কি Convert.ToString()
এবং .ToString()
?
আমি অনলাইনে অনেক পার্থক্য খুঁজে পেয়েছি, তবে প্রধান পার্থক্য কী?
উত্তর:
Convert.ToString()
হ্যান্ডলগুলি null
, যখন ToString()
না।
null
একটি খালি স্ট্রিং ফিরে আসতে চান বা একটি ব্যতিক্রম ছুঁড়তে চান? এটি একরকম as
castালাই এবং ব্যবহারের মধ্যে পার্থক্যের মতো : নীরব রূপান্তর।
ToString()
কোনও বস্তুতে কল করা অনুমান করে যে বস্তুটি নাল নয় (যেহেতু কোনও বস্তুর উপর একটি উদাহরণ পদ্ধতি কল করার প্রয়োজন রয়েছে)। Convert.ToString(obj)
অবজেক্ট অনুমান করার দরকার নেই নাল (যেমন বলা যায় এর রূপান্তরের বর্গ উপর একটি স্ট্যাটিক পদ্ধতি), কিন্তু এর পরিবর্তে ফিরে আসবে নয় String.Empty
যদি এটা হয় নাল।
Convert.ToString(string value)
ফিরে আসে । যুক্তি থাকলে ফিরে আসে । null
null
Convert.ToString(object value)
String.Empty
null
হ্যান্ডলিং null
মানগুলি সম্পর্কে অন্যান্য উত্তরের পাশাপাশি , কলিং বেসের আগে Convert.ToString
ব্যবহারের চেষ্টা করে IFormattable
এবং IConvertible
ইন্টারফেসগুলি Object.ToString
।
উদাহরণ:
class FormattableType : IFormattable
{
private double value = 0.42;
public string ToString(string format, IFormatProvider formatProvider)
{
if (formatProvider == null)
{
// ... using some IOC-containers
// ... or using CultureInfo.CurrentCulture / Thread.CurrentThread.CurrentCulture
formatProvider = CultureInfo.InvariantCulture;
}
// ... doing things with format
return value.ToString(formatProvider);
}
public override string ToString()
{
return value.ToString();
}
}
ফলাফল:
Convert.ToString(new FormattableType()); // 0.42
new FormattableType().ToString(); // 0,42
IConvertible
অগ্রাধিকার নেয় IFormattable
, যা পরিবর্তে Object.ToString()
বাস্তবায়নের চেয়ে অগ্রাধিকার নেয় ।
এই উদাহরণের মাধ্যমে পার্থক্যটি বুঝতে দিন:
int i= 0;
MessageBox.Show(i.ToString());
MessageBox.Show(Convert.ToString(i));
আমরা পূর্ণসংখ্যা রূপান্তর করতে পারেন i
ব্যবহার i.ToString ()
বা Convert.ToString
। তাহলে পার্থক্য কী?
তাদের মধ্যে মূল পার্থক্যটি হ'ল Convert
ফাংশনটি NULLS পরিচালনা করে যখন i.ToString ()
না; এটি একটি নাল রেফারেন্স ব্যতিক্রম ত্রুটি নিক্ষেপ করবে। সুতরাং ব্যবহার করার মতো ভাল কোডিং অনুশীলন convert
সর্বদা নিরাপদ।
আপনি একটি ক্লাস তৈরি করতে পারেন এবং যে toString
কোনও কিছু করতে চাইলে পদ্ধতিটি ওভাররাইড করতে পারেন।
উদাহরণস্বরূপ- আপনি একটি ক্লাস "মাইমাইল" তৈরি করতে পারেন toString
এবং বর্তমান বস্তুটি লেখার পরিবর্তে কোনও ইমেল প্রেরণ করতে বা অন্য কোনও ক্রিয়াকলাপ করতে পদ্ধতিটিকে ওভাররাইড করতে পারেন ।
Convert.toString
তার সমতুল্য স্ট্রিং প্রতিনিধিত্বের নির্দিষ্ট করা মানের পরিবর্তন করে।
নাল পরিচালনা করা ব্যতীত পদ্ধতিগুলি "মূলত" একই ।
Pen pen = null;
Convert.ToString(pen); // No exception thrown
pen.ToString(); // Throws NullReferenceException
এমএসডিএন থেকে:
রূপান্তর করুন.টোস্ট্রিং পদ্ধতি
নির্দিষ্ট মানটিকে তার সমতুল্য স্ট্রিং উপস্থাপনায় রূপান্তর করে।
একটি স্ট্রিং প্রদান করে যা বর্তমান অবজেক্টকে উপস্থাপন করে।
null
, ""
বা "null"
?
ইন Convert.ToString()
, কনভার্টটি কোনও NULL
মান হ্যান্ডেল করে না তবে .ToString()
এতে কোনও NULL
মান এবং একটি NULL
রেফারেন্স ব্যতিক্রম ত্রুটি পরিচালনা করে না । সুতরাং এটি ব্যবহার করা ভাল অনুশীলনে রয়েছে Convert.ToString()
।
কোড প্রেমীদের জন্য এটি সেরা উত্তর।
.............. Un Safe code ...................................
Try
' In this code we will get "Object reference not set to an instance of an object." exception
Dim a As Object
a = Nothing
a.ToString()
Catch ex As NullReferenceException
Response.Write(ex.Message)
End Try
'............... it is a safe code..............................
Dim b As Object
b = Nothing
Convert.ToString(b)
আমি @ রায়ান এর উত্তরের সাথে একমত যাইহোক, এই উদ্দেশ্যে সি # 6.0 দিয়ে শুরু করে আপনি ব্যবহার করতে পারেন:
someString?.ToString() ?? string.Empty;
অথবা
$"{someString}"; // I do not recommend this approach, although this is the most concise option.
পরিবর্তে
Convert.ToString(someString);
Convert.ToString(strName)
নাল-সক্ষম মানগুলি strName.Tostring()
পরিচালনা করবে এবং নাল মান হ্যান্ডেল করবে না এবং একটি ব্যতিক্রম ছুঁড়ে ফেলবে।
তাই এটি উত্তম ব্যবহার করতে Convert.ToString()
তারপর.ToString();
ToString() Vs Convert.ToString()
সাদৃশ্য: -
উভয়ই একটি নির্দিষ্ট প্রকারকে স্ট্রিং অর্থাৎ ইন্টি টু স্ট্রিং, ফ্লোটে স্ট্রিংয়ে বা কোনও বস্তুকে স্ট্রিংয়ে রূপান্তর করতে ব্যবহৃত হয়।
পার্থক্য:
ToString()
Convert.ToString()
নাল মান হ্যান্ডেল করতে ক্ষেত্রে ক্ষেত্রে নাল হ্যান্ডেল করতে পারবেন না ।
উদাহরণ:
namespace Marcus
{
class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
class Startup
{
public static void Main()
{
Employee e = new Employee();
e = null;
string s = e.ToString(); // This will throw an null exception
s = Convert.ToString(e); // This will throw null exception but it will be automatically handled by Convert.ToString() and exception will not be shown on command window.
}
}
}
Convert.ToString
হ্যান্ডেল না Null Exception
। এটি কেবল করুন:return value == null ? string.Empty : value.ToString()
উভয় পদ্ধতি বোঝার জন্য আসুন একটি উদাহরণ নেওয়া যাক:
int i =0;
MessageBox.Show(i.ToString());
MessageBox.Show(Convert.ToString(i));
এখানে উভয় পদ্ধতিই স্ট্রিংকে রূপান্তর করতে ব্যবহৃত হয় তবে তাদের মধ্যে মূল পার্থক্যটি হ'ল: Convert
ফাংশন হ্যান্ডলগুলি NULL
, i.ToString()
এটি একটি নিক্ষেপ করবে না কারণ NULL reference exception error.
ব্যবহার করে ভাল কোডিং অনুশীলন convert
সর্বদা নিরাপদ।
আসুন আরেকটি উদাহরণ দেখুন:
string s;
object o = null;
s = o.ToString();
//returns a null reference exception for s.
string s;
object o = null;
s = Convert.ToString(o);
//returns an empty string for s and does not throw an exception.
Convert.ToString(value)
থেকে obj ভোটদান প্রথম চেষ্টা IConvertible , তারপর IFormattable সংশ্লিষ্ট ডাকতে ToString(...)
পদ্ধতি। পরিবর্তে যদি প্যারামিটার মান হয় null
তবে ফিরে আসুন string.Empty
। শেষ অবলম্বন হিসাবে, obj.ToString()
অন্য কিছু না হলে ফিরে আসুন।
এটি লক্ষণীয় যে উদাহরণস্বরূপ যদি বাতিল হয়ে যায় তবে ফিরে আসতে Convert.ToString(value)
পারে ।null
value.ToString()
দেখুন নেট রেফারেন্স উৎস
আমি এই কোডটি লিখেছি এবং এটি সংকলন করেছি।
class Program
{
static void Main(string[] args)
{
int a = 1;
Console.WriteLine(a.ToString());
Console.WriteLine(Convert.ToString(a));
}
}
'রিভার্স ইঞ্জিনিয়ারিং' ( ইলস্পাই ) ব্যবহার করে আমি খুঁজে পাই 'অবজেক্ট। টুস্ট্রিং ()' এবং 'কনভার্ট। টুস্ট্রিং (আপত্তি)' ঠিক একটি কাজ করে। ইনফ্যাক্ট 'কনভার্ট। টুস্ট্রিং (আপত্তি)' কল 'অবজেক্ট.টোস্ট্রিং ()' সুতরাং 'অবজেক্ট.টোস্ট্রিং ()' দ্রুততর।
class System.Object
{
public string ToString(IFormatProvider provider)
{
return Number.FormatInt32(this, null, NumberFormatInfo.GetInstance(provider));
}
}
class System.Convert
{
public static string ToString(object value)
{
return value.ToString(CultureInfo.CurrentCulture);
}
}
সি # তে আপনি যদি একটি স্ট্রিং ভেরিয়েবল ঘোষণা করেন এবং যদি আপনি সেই ভেরিয়েবলের কোনও মান বরাদ্দ করেন না, তবে ডিফল্টরূপে সেই ভেরিয়েবল একটি নাল মান নেয়। এই জাতীয় ক্ষেত্রে, আপনি যদি টসস্ট্রিং () পদ্ধতি ব্যবহার করেন তবে আপনার প্রোগ্রামটি নাল রেফারেন্সের ব্যতিক্রম ছুঁড়ে দেবে। অন্যদিকে, আপনি যদি কনভার্ট.টোস্ট্রিং () পদ্ধতি ব্যবহার করেন তবে আপনার প্রোগ্রামটি ব্যতিক্রম ছুঁড়ে ফেলবে না।
Convert.Tostring()
মূলত কেবল নিম্নলিখিতগুলি কল করে value == null ? String.Empty: value.ToString()
(string)variable
আপনি যখন কাস্ট করছেন তখন তার মধ্যে কোনও অন্তর্নিহিত বা স্পষ্টত অপারেটর উপস্থিত থাকলে কেবল কাস্ট করা হবে
ToString()
টাইপটির দ্বারা ওভাররাইড করা যেতে পারে (এটি কী করে তার উপর এটি নিয়ন্ত্রণ করে), যদি না টাইপটির নামে ফলাফল আসে
স্পষ্টতই যদি কোনও জিনিস শূন্য থাকে তবে আপনি উদাহরণ সদস্যকে অ্যাক্সেস করতে পারবেন না ToString()
, এটি ব্যতিক্রম ঘটবে
রূপান্তর। টস্ট্রিং () ফাংশন NUL পরিচালনা করে যেখানে .ToString () পদ্ধতিটি করে না। ভিজিট এখানে ।