এটি সর্বদা উপযুক্ত তবে আপনি যেটি প্রদর্শন করছেন তার পিছনে উদ্দেশ্যগুলি সাবধানতার সাথে বিবেচনা করুন
আরও ভাল প্রশ্ন জিজ্ঞাসা করা হবে:
কেন একজন টসস্ট্রিং () কে ওভাররাইড করবে?
টোস্ট্রিং () হ'ল উইন্ডোটি কোনও অবজেক্টের স্থিতিতে পরিণত হয়। প্রয়োজন হিসাবে রাষ্ট্রের উপর জোর দেওয়া । জাভা / সি # এর মতো দৃ O়ভাবে ওওপি ভাষাগুলি ক্লাসের সমস্ত কিছুকে আবদ্ধ করে ওওপি মডেলটিকে আপত্তি জানায়। কল্পনা করুন আপনি এমন ভাষায় কোডিং করছেন যা শক্তিশালী ওওপি মডেলটি অনুসরণ করে না; আপনি ক্লাস বা কোনও ফাংশন ব্যবহার করবেন কিনা তা বিবেচনা করুন। আপনি যদি এটি কোনও ফাংশন হিসাবে ব্যবহার করেন (অর্থাত ক্রিয়া, ক্রিয়া) এবং অভ্যন্তরীণ অবস্থা কেবল ইনপুট / আউটপুট মধ্যে অস্থায়ীভাবে বজায় থাকে তবে টসস্ট্রিং () মান যোগ করবে না।
অন্যরা যেমন উল্লেখ করেছে, টোস্ট্রিং () দিয়ে আপনি কী আউটপুট নেন তা বিবেচনা করা গুরুত্বপূর্ণ কারণ এটি ডিবাগার বা অন্যান্য সিস্টেমগুলি ব্যবহার করতে পারে।
আমি টুস্ট্রিং পদ্ধতিটি কোনও বস্তুর --help পরামিতি হিসাবে কল্পনা করতে চাই। এটি সংক্ষিপ্ত, পাঠযোগ্য, সুস্পষ্ট এবং প্রদর্শন করা সহজ। এটা তোলে প্রদর্শন করা উচিত কি বস্তু হল এটা কি না করে । এই সমস্ত বিবেচনা করে আসুন বিবেচনা করা যাক ...
কেস ব্যবহার করুন - একটি টিসিপি প্যাকেট পার্সিং:
কেবলমাত্র অ্যাপ্লিকেশন-স্তরের নেটওয়ার্ক ক্যাপচার নয়, পিসি্যাপ ক্যাপচারের মতো আরও মাংসযুক্ত কিছু।
আপনি কেবলমাত্র টিসিপি স্তরের জন্য ওস্ট্রলোড () ওভারলোড করতে চান যাতে আপনি কনসোলে ডেটা মুদ্রণ করতে পারেন। এটি কি অন্তর্ভুক্ত করবে? আপনি পাগল হয়ে যেতে এবং টিসিপির সমস্ত বিশদ বিশ্লেষণ করতে পারবেন (যেমন টিসিপি জটিল) ...
যার মধ্যে রয়েছে:
- উত্স বন্দর
- গন্তব্য পোর্ট
- ক্রমিক নম্বর
- স্বীকৃতি নম্বর
- ডেটা অফসেট
- পতাকা
- উইন্ডো অফসেট
- চেকসাম
- জরুরী পয়েন্টার
- বিকল্পগুলি (আমি এমনকি সেখানে যাব না)
আপনি যদি 100 টি প্যাকেটে টিসিপি.টোস্ট্রিং () কল করে থাকেন তবে আপনি কি সেই সমস্ত আবর্জনা পেতে চান? অবশ্যই না, এটি তথ্য ওভারলোড হবে। সহজ এবং সুস্পষ্ট পছন্দটিও সবচেয়ে বুদ্ধিমান ...
লোকেরা কী প্রত্যাশা করবে তা প্রকাশ করুন:
আমি একটি বোধগম্য আউটপুট পছন্দ করি যা মানুষের পক্ষে পার্স করা সহজ তবে ওয়াইএমএমভি ।
TCP:[destination:000, source:000]
জটিল কিছু নয়, আউটপুটটি মেশিনগুলির বিশ্লেষণের জন্য নয় (অর্থাত্ লোকেরা আপনার কোডটি অপব্যবহার না করে), উদ্দেশ্যযুক্ত উদ্দেশ্য মানব পাঠযোগ্যতার জন্য।
তবে আমি আগে যে রসালো তথ্যটি নিয়ে বাকী কথা বললাম সেগুলি সম্পর্কে কী, এটিও কার্যকর নয়? আমি সেখানে যাব তবে প্রথমে ...
টোস্ট্রিং () সর্বকালের অন্যতম মূল্যবান এবং অনুন্নত পদ্ধতি
দুটি কারণে:
- লোকেরা বুঝতে পারে না টসস্ট্রিং () কীসের জন্য
- বেস 'অবজেক্ট' শ্রেণিতে অন্য একটি, একই গুরুত্বপূর্ণ, স্ট্রিং পদ্ধতি অনুপস্থিত।
কারণ 1 - টসস্ট্রিং () এর উপযোগিতাটি অপব্যবহার করবেন না:
প্রচুর লোক টুস্ট্রিং () ব্যবহার করে কোনও বস্তুর সাধারণ স্ট্রিং উপস্থাপনা টানতে। সি # ম্যানুয়াল এমনকি বলে:
টো স্ট্রিং .NET ফ্রেমওয়ার্কের প্রধান বিন্যাস পদ্ধতি। এটি কোনও বস্তুকে তার স্ট্রিং উপস্থাপনায় রূপান্তর করে যাতে এটি প্রদর্শনের জন্য উপযুক্ত।
প্রদর্শন করুন, আরও প্রক্রিয়াজাতকরণ নয়। এর অর্থ এই নয় যে, উপরের টিসিপি প্যাকেটের জন্য আমার দুর্দান্ত স্ট্রিং উপস্থাপনা নিন এবং একটি রেজেক্স :: ক্রিংজ :: ব্যবহার করে উত্স বন্দরটি টানুন।
ডান কিছু করার উপায়, কল ToString () সরাসরি SourcePort সম্পত্তি (যা BTW তাই ToString একটি ushort () ইতিমধ্যে পাওয়া উচিত) হয়।
মেশিন পার্সিংয়ের জন্য কোনও জটিল অবজেক্টের অবস্থা প্যাকেজ করার জন্য যদি আপনার আরও শক্তিশালী কিছু দরকার হয় তবে আপনি কাঠামোগত সিরিয়ালাইজেশন কৌশলটি ব্যবহার করা ভাল।
ভাগ্যক্রমে, এ জাতীয় কৌশলগুলি খুব সাধারণ:
- ইশিরাইলাইজেবল (সি #)
- আচার (পাইথন)
- জেএসএন (জাভাস্ক্রিপ্ট বা এটি প্রয়োগকারী কোনও ভাষা)
- সাবান
- ইত্যাদি ...
দ্রষ্টব্য: আপনি যদি পিএইচপি ব্যবহার না করেন তবে, হার্প-ডার্প, তার জন্য একটি ফাংশন আছে :: স্নিকার ::
কারণ 2 - টুস্ট্রিং () যথেষ্ট নয়:
আমি এখনও এমন একটি ভাষা দেখতে পাই যা মূলত এটি প্রয়োগ করে তবে আমি বুনোতে এই পদ্ধতির বিভিন্নতা দেখেছি এবং ব্যবহার করেছি।
যার মধ্যে কিছু রয়েছে:
- ToVerboseString ()
- ToString (বাগাড়ম্বরপূর্ণ সত্য =)
মূলত, টিসিপি প্যাকেটের রাজ্যের সেই লোমশ জঞ্জালটি মানব পাঠযোগ্যতার জন্য বর্ণনা করা উচিত । টিসিপি নিয়ে কথা বলতে 'মৃত ঘোড়াটিকে মারধর' এড়াতে আমি # 1 মামলায় 'আঙুল তুলে দেখব' যেখানে আমি মনে করি যে ToString () এবং ToVerboseString () নিরূপিত করা হয়েছে ...
কেস ব্যবহার করুন - অ্যারে:
আপনি যদি প্রাথমিকভাবে একটি ভাষা ব্যবহার করেন তবে আপনি সম্ভবত সেই ভাষার পদ্ধতির সাথে স্বাচ্ছন্দ্য বোধ করেন। আমার মতো লোকদের জন্য যারা বিভিন্ন ভাষার মধ্যে লাফ দেন, বিভিন্ন পদ্ধতির সংখ্যা বিরক্তিকর হতে পারে।
অর্থাৎ, যে পরিমাণ বার আমাকে বিরক্ত করেছে, তা প্রতিটি হিন্দু দেবতার সমস্ত আঙুলের যোগফলের চেয়ে বড়।
আছে বিভিন্ন ক্ষেত্রে যেখানে ভাষায় সাধারণ ব্যবহার হ্যাক এবং কয়েক যে পেতে এটি ডান । কারও কারও জন্য চাকা পুনরায় উদ্ভাবন প্রয়োজন, কেউ কেউ অগভীর ডাম্প করে, অন্যরা গভীর ডাম্প করে, তাদের কেউই আমার পছন্দ মতো কাজ করে না ...
আমি যা চাইছি তা হ'ল একটি খুব সহজ পদ্ধতির:
print(array.ToString());
আউটপুট: 'অ্যারে [এক্স]' বা 'অ্যারে [এক্স] [y]'
যেখানে x হ'ল প্রথম মাত্রায় আইটেমের সংখ্যা এবং y হ'ল দ্বিতীয় মাত্রায় আইটেমের সংখ্যা বা এমন কোনও মান যা ইঙ্গিত দেয় যে 2 য় মাত্রাটি জেগড (কমপক্ষে / মিনিটের সীমা হতে পারে?)।
এবং:
print(array.ToVerboseString());
পুরো শে-ব্যাংকে চমত্কার মুদ্রণে আউটপুট দেয় কারণ আমি সুন্দর জিনিসগুলির প্রশংসা করি।
আশা করি, এটি এমন একটি বিষয় সম্পর্কে কিছুটা আলোকপাত করে যা আমাকে দীর্ঘদিন ধরে ক্ষিপ্ত করে তুলেছে। এই উত্তরটি নীচে নেওয়ার জন্য পিএইচপিয়ার্সের জন্য খুব কমপক্ষে আমি একটি সামান্য ট্রল-টোপ ছিটিয়েছি।
Console.WriteLine(obj.GetToStringItemsHeadings); Console.WriteLine(obj);
বা অনুরূপ ব্যবহার করে বস্তুটি ফেলে দেওয়ার জন্য এটি ব্যবহার করছে ।