স্ট্রিম.সেক (0, সিকআরগিন.বেগিন) বা অবস্থান = 0


175

আপনার যখন কোনও স্ট্রিমটি শুরুতে পুনরায় সেট করতে হবে (উদাহরণস্বরূপ MemoryStream) এটি ব্যবহার করার জন্য সর্বোত্তম অনুশীলন

stream.Seek(0, SeekOrigin.Begin);

অথবা

stream.Position = 0;

আমি উভয়ই ভাল কাজ দেখেছি, তবে ভাবছি যে অন্যটির চেয়ে আরও সঠিক ছিল কিনা?


1
যদি মেমরি স্ট্রিমের বিষয়বস্তু ফেরত পাওয়া যায় তবে টোআরাই অবস্থান নির্বিশেষে কাজ করে
জেমস কিবার্জ

3
উত্তর: একজন সবচেয়ে বেশি পঠনযোগ্য।
jgauffin

7
আমি ব্যক্তিগতভাবে পছন্দ করি stream.Position = 0;তবে আমাকে @ jgauffin এর সাথে একমত হতে হবে, কেবল সর্বাধিক পঠনযোগ্য চয়ন করতে হবে, উভয় সমাধানই ভাল কাজ করে।
লেননিপ

উত্তর:


161

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


55
আমি সম্পত্তিটি আপেক্ষিক অবস্থানের জন্যও ব্যবহার করি: stream.Position += 10;আমার কাছে এটি বেশ পঠনযোগ্য বলে মনে হয়।
জন স্কিটি

6
সিকোরিগিন.বিগিন এবং সিকোরিগিন.কন্টেন ব্যবহারের মধ্যে কি গতির পার্থক্য রয়েছে?
গনজোব্রাইনগুলি

6
@gonzobrains "প্রত্যাবর্তনের মান: প্রারম্ভিক রেফারেন্স পয়েন্ট এবং অফসেটের সমন্বয় করে স্ট্রিমের মধ্যে থাকা নতুন অবস্থান।" । সুতরাং সম্মিলনটির জন্য কেবল সরাসরি অবস্থান নির্ধারণের চেয়ে কিছুটা বেশি খরচ হয়। ব্যবহারিকভাবে এর অর্থ নিট-পিকিং ছাড়া কিছুই নয়। )))
ব্যবহারকারী 808128

1
@ ব্যবহারকারী 808128 নথিটি উদ্ধৃত করা, এ ধরণের নথিপত্র অন্তর্ভুক্ত করা কার্য সম্পাদনের প্রমাণ নয়। এর জন্য আপনার উত্স কোডগুলি উল্লেখ করা উচিত।
আরেকবুলস্কি

8

উভয় পদ্ধতির জন্য আপনি উত্স কোডটি দেখতে পারেন:

ব্যয়টি প্রায় অভিন্ন (3 আইপি এবং কিছু গাণিতিক)। তবে এটি কেবল নিখুঁত অফসেটের মতো ঝাঁপ দেওয়ার জন্য সত্য Position = 0এবং আপেক্ষিক অফসেটের মতো নয় Position += 0, সেক্ষেত্রে সিক কিছুটা ভাল বলে মনে হচ্ছে।

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

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