params
পরামিতি পরিবর্তক কলারের একটি পদ্ধতি একাধিক আর্গুমেন্ট ক্ষণস্থায়ী জন্য একটি শর্টকাট সিনট্যাক্স দেয়। params
প্যারামিটার সহ একটি পদ্ধতি কল করার দুটি উপায় রয়েছে :
1) প্যারামিটার ধরণের একটি অ্যারের সাথে কল করা, সেক্ষেত্রে params
কীওয়ার্ডটির কোনও প্রভাব নেই এবং অ্যারেটি সরাসরি পদ্ধতিতে দেওয়া হয়:
object[] array = new[] { "1", "2" };
// Foo receives the 'array' argument directly.
Foo( array );
2) অথবা, যুক্তিগুলির একটি বর্ধিত তালিকা সহ কল করা, সেক্ষেত্রে সংকলক স্বয়ংক্রিয়ভাবে একটি অস্থায়ী অ্যারেতে আর্গুমেন্টের তালিকাটি গুটিয়ে ফেলবে এবং এটি পদ্ধতিতে প্রেরণ করবে:
// Foo receives a temporary array containing the list of arguments.
Foo( "1", "2" );
// This is equivalent to:
object[] temp = new[] { "1", "2" );
Foo( temp );
" params object[]
" পরামিতি সহ কোনও পদ্ধতিতে অবজেক্ট অ্যারেতে যাওয়ার জন্য , আপনি হয় করতে পারেন:
1) ম্যানুয়ালি একটি মোড়কের অ্যারে তৈরি করুন এবং লাসসেভক দ্বারা উল্লিখিত হিসাবে এটি সরাসরি পদ্ধতিতে পাস করুন :
Foo( new object[] { array } ); // Equivalent to calling convention 1.
2) বা, অ্যাডামobject
দ্বারা উল্লিখিত হিসাবে যুক্তিটি নিক্ষেপ করুন , সেক্ষেত্রে সংকলক আপনার জন্য মোড়কের অ্যারে তৈরি করবে:
Foo( (object)array ); // Equivalent to calling convention 2.
তবে, যদি পদ্ধতির লক্ষ্যটি একাধিক অবজেক্ট অ্যারে প্রসেস করা হয় তবে এটি স্পষ্টত params object[][]
পরামিতি দ্বারা ঘোষণা করা আরও সহজ হতে পারে । এটি আপনাকে আর্গুমেন্ট হিসাবে একাধিক অ্যারে পাস করার অনুমতি দেবে:
void Foo( params object[][] arrays ) {
foreach( object[] array in arrays ) {
// process array
}
}
...
Foo( new[] { "1", "2" }, new[] { "3", "4" } );
// Equivalent to:
object[][] arrays = new[] {
new[] { "1", "2" },
new[] { "3", "4" }
};
Foo( arrays );
সম্পাদনা করুন: রেমন্ড চেন এই আচরণ এবং এটি একটি নতুন পোস্টে সি # নির্দিষ্টকরণের সাথে কীভাবে সম্পর্কিত তা বর্ণনা করে ।