রানটাইম ? একেবারে কিছুই নয়। আপনি কেবল রেফ বা আউটআউট কীওয়ার্ডের মাধ্যমে একই পরামিতিগুলির সাথে পৃথক হওয়া কোনও পদ্ধতিকে ওভারলোড করতে পারবেন না।
এটি সংকলনের চেষ্টা করুন এবং আপনি একটি সংকলন ত্রুটি পাবেন "একই স্বাক্ষরযুক্ত পদ্ধতি ইতিমধ্যে ঘোষণা করা হয়েছে":
private class MyClass
{
private void DoSomething(out int param)
{
}
private void DoSomething(ref int param)
{
}
}
এই প্রশ্নের উত্তর দিতে:
"... এত সংকীর্ণ ব্যবহারের ক্ষেত্রে সি # তে দুটি একই ধরণের সরঞ্জাম কেন আছে?"
একটি কোড পঠনযোগ্যতা এবং এপিআই অবস্থান থেকে একটি বিশাল পার্থক্য আছে। এপিআইর গ্রাহক হিসাবে আমি জানি যে যখন "আউট" ব্যবহার করা হয় তখন এপিআই আউট প্যারামিটারের উপর নির্ভর করে না। এপিআই বিকাশকারী হিসাবে আমি "আউট" পছন্দ করি এবং কেবল যখন প্রয়োজন (বিরল!) কেবল তখনই "রেফ" ব্যবহার করি। একটি দুর্দান্ত আলোচনার জন্য এই রেফারেন্সটি দেখুন:
/programming/1516876/when-to-use-ref-vs-out
সহায়ক তথ্য: আমি নিম্নলিখিত পদ্ধতিটি সংকলন করেছি এবং এটিকে আলাদা করে দিয়েছি। আমি রেফ এবং আউটআউট কীওয়ার্ড ব্যবহার করেছি (এই উদাহরণে বাইরে), তবে সমাবেশের কোডটি কোনও ঠিকানা রেফারেন্স বাদে আমার প্রত্যাশা অনুযায়ী পরিবর্তন হয়নি:
private class MyClass
{
internal void DoSomething(out int param)
{
param = 0;
}
}
00000000 ধাক্কা ebp
00000001 পর্ণ ebp, ESP
00000003 ধাক্কা EDI
00000004 ধাক্কা Esi
00000005 ধাক্কা ebx
00000006 সাব ESP, 34h
00000009 XOR EAX, EAX
0000000b পর্ণ DWORD কাজ খুঁজছেন এরকম [ebp-10h], EAX
0000000e পর্ণ DWORD কাজ খুঁজছেন এরকম [ebp-1CH], EAX
00000011 মুভ ডওয়ার্ট
পিটিআর [ ইবিপি -3 সিএইচ], এক্সএক্স 00000014 মোভ ডুওয়ার্ট পিটিআর [ইবিপি
-40 এইচ], এডিএক্স 00000017 সিএমপি ডুয়ার্ট পিটিআর ডিএস: [008B1710h], 0
0000001e জে 00000025
00000020 কল 6E6B601E
00000025 নোট প্যারাম
= 0;
00000026
মোভ ইক্স, ডওয়ার্ট পিটিআর [ ইবিপি -40 এইচ ] 00000029 জোর এডেক্স, এডিএক্স
0000002b পর্ণ DWORD কাজ খুঁজছেন এরকম [EAX], EdX
}
0000002d nop
0000002e কর্মদিবসের ESP, [ebp-0Ch]
00000031 পপ ebx
00000032 পপ Esi
00000033 পপ EDI
00000034 পপ ebp
00000035 অবঃ
আমি কি সমাবেশটি সঠিকভাবে পড়ছি?
ref
সি ++ তে একইভাবে প্রয়োগ করা হয়েছে; প্রশ্নে বস্তু পয়েন্টার (বা আদিম) পয়েন্টার। অর্থাতInt32.TryParse(myStr, out myInt)
(সি #) একইভাবে "চালিত" হয়int32_tryParse(myStr, &myInt)
(সি) এর মতো; ত্রুটিগুলি রোধ করতে কম্পাইলার দ্বারা প্রয়োগ করা কিছু প্রতিবন্ধকতাগুলির মধ্যে পার্থক্য। (আমি এটি উত্তর হিসাবে পোস্ট করব না কারণ পর্দার আড়ালে এটি কীভাবে কাজ করে সে সম্পর্কে আমার ভুল হতে পারে, তবে আমি কীভাবে কল্পনা করি এটি কাজ করে [কারণ এটি বোধ হয়])