জাভাটির ভারার্গ পরামিতিগুলির জন্য কি সি # বিকল্প আছে?


96

আমি জাভা এবং নতুন টু। নেট প্রযুক্তিতে কাজ করেছি

সি # তে কোনও ফাংশন ঘোষণা করা কি সম্ভব যা ভেরিয়েবল ইনপুট পরামিতি গ্রহণ করে

নিম্নলিখিত জাভা সিনট্যাক্সের মতো কোনও সি # সিনট্যাক্স রয়েছে কি?

void f1(String... a)

4
নিচে উত্তর কোন উত্তর দিলেন আপনার প্রশ্নের পথে স্ট্যাক ওভারফ্লো কাজ করে, আপনি পাশে চেকমার্ক ক্লিক করে উত্তর "স্বীকার করুন" চাই; বিশদ এখানে ।
— টিজে ক্রাউডার

উত্তর:


153

হ্যাঁ, সি # এর ভ্যারাগস পরামিতিগুলির সমতুল্য। তাদেরকে প্যারামিটার অ্যারে বলা হয় এবং paramsসংশোধকটির সাথে পরিচয় করিয়ে দেওয়া হয় :

public void Foo(int x, params string[] values)

তারপরে এটিকে কল করুন:

Foo(10, "hello", "there");

জাভা যেমন, এটি শুধুমাত্র শেষ প্যারামিটার যা পৃথক হতে পারে। মনে রাখবেন যে (জাভা হিসাবে) একটি প্যারামিটার params object[] objectsসহজেই বিভ্রান্তি ঘটাতে পারে, কারণ আপনার মনে রাখা দরকার যে একক ধরণের যুক্তিটি object[]আবার মোড়ানোর জন্য বোঝানো হয়েছে কিনা। তেমনিভাবে কোনও নালযোগ্য টাইপের জন্য, আপনার মনে রাখতে হবে যে একটি একক যুক্তি nullঅ্যারে রেফারেন্স বা একক অ্যারে উপাদান হিসাবে বিবেচিত হবে কিনা । (আমি মনে করি যে সংকলকটি কেবল যদি অ্যারে তৈরি করে তবে এটি তৈরি করে তবে আমি কোড লিখতে ঝোঁক যা আমাকে তা মনে রাখতে এড়ায়))


+1, যদিও আমি এটি উল্লেখ করব (অন্য কোনও ভাষার বৈশিষ্ট্য হিসাবে), এটি অপব্যবহার করা উচিত নয়।
— ফেডেরিকো বেরাসেটুই

16
@ হাইকোর: আপনি যদি অন্য যে কোনও ভাষার বৈশিষ্ট্য সম্পর্কে এটি উল্লেখ করতে চলেছেন তবে এটি সম্ভবত উল্লেখ করার মতো নয় :)
— জন স্কিট

4
@ এইচভিডি: ওপিকে একটি শিক্ষানবিস হিসাবে উপস্থিত বলে মনে হচ্ছে, আমি বরং এখানে নাম যুক্তি, optionচ্ছিক পরামিতি ইত্যাদিতে যাব না। আপনি যে বিন্দুটি তৈরি করার চেষ্টা করছেন তা আমি দেখতে পাচ্ছি তবে আমি মনে করি এটি এই মুহুর্তের চেয়ে আলোর চেয়ে আরও বিভ্রান্তি যুক্ত করবে।
— জন স্কিটি

38

কটাক্ষপাত আছে প্যারাম (গ # রেফারেন্স)

প্যারাম কীওয়ার্ড আপনাকে এমন একটি প্যারামিটার নির্দিষ্ট করতে দেয় যা একটি পরিবর্তনশীল সংখ্যক আর্গুমেন্ট নেয়।

আপনি পরামিতি ঘোষণায় নির্দিষ্ট ধরণের আর্গুমেন্টের কমা-বিচ্ছিন্ন তালিকা বা নির্দিষ্ট ধরণের আর্গুমেন্টের অ্যারে প্রেরণ করতে পারেন। আপনি কোন যুক্তি প্রেরণ করতে পারেন।

কোনও পদ্ধতি ঘোষণায় প্যারাম কীওয়ার্ডের পরে কোনও অতিরিক্ত প্যারামিটারের অনুমতি নেই এবং পদ্ধতি ঘোষণায় কেবলমাত্র একটি প্যারাম কীওয়ার্ড অনুমোদিত।

উদাহরণ হিসাবে প্রদর্শিত পদ্ধতি হিসাবে হিসাবে ঘোষণা করা হয়

public static void UseParams(params int[] list)
{
    for (int i = 0; i < list.Length; i++)
    {
        Console.Write(list[i] + " ");
    }
    Console.WriteLine();
}

এবং হিসাবে ব্যবহৃত

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