মাইক্রোসফ্ট কি সি # তে 'বর্ণ' ব্যবহারকে নিরুৎসাহিত করছে? (VS2017)


16

আমি আসন্ন ভিজ্যুয়াল স্টুডিও 2017 এ দেখছি ।

বুস্টড প্রোডাক্টিভিটি শিরোনামে বিভাগটির অধীনে ভিজ্যুয়াল স্টুডিওর চিত্র রয়েছে যা স্পষ্টতাল ধরণের সাথে ভেরের সমস্ত উপস্থিতি প্রতিস্থাপন করতে ব্যবহৃত হয় ।

উত্পাদনশীলতা ভিএস2017 বাড়িয়েছে

কোডটিতে স্পষ্টতই বেশ কয়েকটি সমস্যা রয়েছে যা ভিজ্যুয়াল স্টুডিওতে 'প্রয়োজনীয়তা ঠিক করা' হিসাবে চিহ্নিত করেছে।

আমি সি # তে ভের ব্যবহার সম্পর্কে আমার বোঝার ডাবল-চেক করতে চেয়েছিলাম তাই আমি এরিক লিপার্টের 2011 সাল থেকে একটি নিবন্ধ পড়েছিলাম যা ব্যবহার এবং অন্তর্নিহিত টাইপের অপব্যবহার বলে ।

এরিক বলেছেন:

  • আপনাকে যখন ব্যবহার করতে হবে তখন ব্যবহার করুন; যখন আপনি বেনামি ধরণের ব্যবহার করছেন।
  • প্রারম্ভিকর থেকে ঘোষণার প্রকারটি স্পষ্ট হলে ভের ব্যবহার করুন, বিশেষত যদি এটি কোনও বস্তু তৈরি হয়। এটি অপ্রয়োজনীয়তা দূর করে।
  • কোডটি যদি ভেরিয়েবলের অর্থপূর্ণ "ব্যবসায়িক উদ্দেশ্য" জোর দেয় এবং তার স্টোরেজটির "যান্ত্রিক" বিশদটি নীচে দেখায় তবে ভের ব্যবহার করে বিবেচনা করুন।
  • কোডটি সঠিকভাবে বোঝার জন্য এবং বজায় রাখার জন্য যদি এটি করা প্রয়োজন হয় তবে সুস্পষ্ট প্রকারগুলি ব্যবহার করুন।
  • আপনি “ভার” ব্যবহার করেন না কেন বর্ণনামূলক পরিবর্তনশীল নাম ব্যবহার করুন। চলক নামগুলি ভেরিয়েবলের শব্দার্থক প্রতিনিধিত্ব করে, এটির সঞ্চয়স্থানের বিশদ নয়; "দশমিক রেট" খারাপ; "সুদের হার" ভাল।

আমি মনে করি কোডটির বেশিরভাগ ভের ব্যবহার সম্ভবত ঠিক আছে। আমি মনে করি যে বিটটি পড়ছে তার জন্য ভের ব্যবহার না করা ঠিক হবে ...

var tweetReady = workouts [ ... ]

... কারণ এটি যে ধরণের তা 100% তাত্ক্ষণিক নয় তবে তবুও আমি খুব দ্রুত জানি যে এটি একটি boolean

Var এই অংশের জন্য ব্যবহার ...

var listOfTweets = new List<string>();

... আমার কাছে ঠিক ঠিক ভারের ব্যবহারের মতো দেখায় কারণ আমি মনে করি যে এটি করা নিখরচায়:

List<string> listOfTweets = new List<string>();

যদিও এরিক যা বলে তার উপর ভিত্তি করে চলকটি সম্ভবত তালিকাঅফটুইটের পরিবর্তে টুইট করা উচিত ।

varএখানে সমস্ত ব্যবহারের পরিবর্তনের কারণ কী হবে ? এই কোডটির সাথে কিছু ভুল আছে যা আমি মিস করছি?


স্ক্রিনশটের কোডটি হ'ল ধরণের জিনিস যা আপনি সম্মত হন তাতে ভের ব্যবহার করা উচিত নয় ... স্পষ্টতা?
তেলস্তিন

1
আমি মনে করি যে varএখানকার সমস্ত ব্যবহার ঠিক আছে। আপনি সম্ভবত একটি পরিবর্তন করতে পারেন - তবে তবুও আমি মনে করি এটি সত্যিই প্রয়োজনীয় নয়। এগুলি সমস্তগুলিকে সুস্পষ্ট ধরণে কেন পরিবর্তন করবেন?
রোয়ান ফ্রিম্যান

2
মনে রাখবেন যে মানুষের কাছে যা স্পষ্ট তা ভিজ্যুয়াল স্টুডিওতে সর্বদা সুস্পষ্ট নয়।
candied_orange

সকল? স্ক্রিনশটে আপনার একটি ত্রুটি রয়েছে যা স্পষ্টভাবে বর্ণ সম্পর্কিত।
তেলস্তিন

ভাল এটি কোনও ত্রুটি নয় বরং এটি একটি সতর্কতা যা আপনি একটি লিন্টারটি উল্লেখ করতে চান। চিত্র অনুসারে, varsসমস্তগুলি একইভাবে চিহ্নিত করা হয়েছে; তাদের পাশের একই সতর্কতা ক্রস চিহ্ন এবং একটি লাল রেখাচিত্র। সম্ভবত ভিজ্যুয়াল স্টুডিও একইভাবে তাদের সমস্ত সংশোধন করতে চায়। আমি ভুল না হলে।
রোয়ান ফ্রিম্যান

উত্তর:


27

টিএল; ডিআর: না, মাইক্রোসফ্ট সি # তে 'বর্ণ' ব্যবহারকে নিরুৎসাহিত করছে না। চিত্রটি কেন অভিযোগ করছে তা ব্যাখ্যা করার জন্য কেবল প্রসঙ্গের অভাব রয়েছে।

আপনি VS2017 রেসিন ইনস্টল এবং বিকল্প প্যানেল খুলুন এবং যান Text Editor -> C#, আপনি একটি নতুন অধ্যায় দেখতে পাবেন: Code Style। এটি রিশার্পার কিছু সময়ের জন্য যা অফার করেছে তার সাথে মিল: কোডিং শৈলীর জন্য কনফিগারযোগ্য নিয়মের একটি সেট।

এর ব্যবহারের চারপাশে তিনটি বিকল্প অন্তর্ভুক্ত রয়েছে var: বিল্ট-ইন প্রকারের জন্য, যখন ভেরিয়েবল টাইপটি দৃশ্যমান হয় এবং "অন্য কোথাও"। প্রতিটি ক্ষেত্রে, আপনি "সুস্পষ্ট প্রকার পছন্দ করুন" বা "পছন্দসই বর্ণ" নির্দিষ্ট করতে পারেন এবং বিজ্ঞপ্তির স্তরটিকে "কোনও নয়", "পরামর্শ", "সতর্কতা" বা "ত্রুটি" তে সেট করতে পারেন:

এখানে চিত্র বর্ণনা লিখুন


3
ডিফল্ট কি? যদি "ফ্যাক্টরি সেটিং" "সুস্পষ্ট ধরণের পছন্দকে পছন্দ করেন" তবে এটি যুক্তিযুক্ত হতে পারে এমএস এর ব্যবহারকে নিরুৎসাহিত করছে var
জ্যাকবিবি 3'17

@ জ্যাকউসবি, ডিফল্টগুলি স্ক্রিন শটে প্রদর্শিত আছে। সমস্ত "কিছুই নয়" তে সেট করা আছে, "স্পষ্টত প্রফার্ট টাইপ পছন্দ করুন" সক্রিয়ভাবে এমএসের পছন্দসই উপায় হিসাবে সেট করা আছে কিনা, বা এটি কেবল "শূন্য মান" কিনা তা জানা মুশকিল difficult যতদূর আমি উদ্বিগ্ন, সেরা সকলের পক্ষে ভাল var, তাই এই বিষয়ে এমএসের দৃষ্টিভঙ্গি আমার খুব বেশি যত্ন নেই।
ডেভিড আরনো

6

আমি মনে করি আপনি এটিতে খুব বেশি পড়ছেন। সুতরাং, এমন একটি বৈশিষ্ট্য রয়েছে যা আপনাকে স্পষ্ট প্রকারের টীকাগুলির সাথে অন্তর্নিহিত টাইপিংয়ের ব্যবহারগুলি প্রতিস্থাপন করতে দেয় এবং আপনি এ থেকে উপসংহারে পৌঁছান যে অন্তর্নিহিত টাইপিংকে নিরুৎসাহিত করা হয়। সিআইএল-কে সিআইএল বাইটকোড সংকলনের একটি বৈশিষ্ট্যও রয়েছে, আপনি কি সিআই থেকে নিরুৎসাহিত হয়েছেন তা থেকে উপসংহারটি নিতে পারেন এবং তার পরিবর্তে আমাদের সকলকে সিআইএল বাইটকোড লিখতে হবে? সম্ভবত না.

মাইক্রোসফ্ট আপনার কোডটি আইডিইয়ের গভীর বোঝাপড়াটি সহজভাবে প্রদর্শন করছে। এমনকি আপনার বানানগুলি ছাড়াই এটি আপনার জন্য আপনার প্রকারগুলি লিখতে পারে। এটাই.

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

সুতরাং, সংক্ষেপে: এটি একটি IDE বৈশিষ্ট্য দেখানোর এক চটকদার উপায়।

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