গতিশীল (সি # 4) এবং ভের মধ্যে পার্থক্য কী?


199

আমি সেই নতুন কীওয়ার্ডটি সম্পর্কে CON v4 দিয়ে শিপিংয়ের জন্য প্রচুর নিবন্ধ পড়েছি, তবে আমি "গতিশীল" এবং "ভ্যার" এর মধ্যে পার্থক্য করতে পারিনি।

এই নিবন্ধটি আমাকে এটি সম্পর্কে ভাবতে বাধ্য করেছে, তবে আমি এখনও কোনও পার্থক্য দেখতে পাচ্ছি না।

আপনি কি কেবল স্থানীয় ভেরিয়েবল হিসাবে "var" ব্যবহার করতে পারেন তবে স্থানীয় এবং বৈশ্বিক উভয় হিসাবে গতিশীল?

আপনি কি গতিশীল কীওয়ার্ড ছাড়াই কিছু কোড প্রদর্শন করতে পারেন এবং তারপরে ডায়নামিক কীওয়ার্ড সহ একই কোডটি প্রদর্শন করতে পারেন?

উত্তর:


455

varস্থিতিশীল টাইপ করা হয় - সংকলক এবং রানটাইম টাইপগুলি জানেন - তারা কেবল আপনাকে কিছু টাইপ করে সংরক্ষণ করে ... নিম্নলিখিতটি 100% অভিন্ন:

var s = "abc";
Console.WriteLine(s.Length);

এবং

string s = "abc";
Console.WriteLine(s.Length);

যা ঘটেছিল তা হ'ল সংকলকটি বুঝতে পেরেছিল যে এটি sঅবশ্যই একটি স্ট্রিং হতে হবে (আরম্ভকারী থেকে)। উভয় ক্ষেত্রেই এটি (আইএল) জানে যার s.Lengthঅর্থ (উদাহরণ) string.Lengthসম্পত্তি।

dynamicএকটি খুব ভিন্ন প্রাণী; এটি সর্বাধিক অনুরূপ objectতবে গতিশীল প্রেরণের সাথে:

dynamic s = "abc";
Console.WriteLine(s.Length);

এখানে, গতিশীল হিসাবেs টাইপ করা হয় । এটা তোলে কথা কে না জানে string.Length, কারণ এটি জানে না, কিছু সম্পর্কে sসময় সঙ্কলন করেন। উদাহরণস্বরূপ, নিম্নলিখিতগুলিও সংকলন করবে (তবে চলবে না):

dynamic s = "abc";
Console.WriteLine(s.FlibbleBananaSnowball);

রানটাইম (শুধুমাত্র) এ, এটা হবে পরীক্ষা জন্য FlibbleBananaSnowballসম্পত্তি - এটা খুঁজে পেতে ব্যর্থ, এবং স্পার্ক একটি ঝরনা মধ্যে বিস্ফোরিত।

সহ dynamic, সম্পত্তি / পদ্ধতি / অপারেটর / ইত্যাদি রানটাইমগুলিতে প্রকৃত বস্তুর উপর ভিত্তি করে সমাধান করা হয় । সিওএম (যা কেবলমাত্র রানটাইমযুক্ত বৈশিষ্ট্য থাকতে পারে), ডিএলআর, বা অন্যান্য গতিশীল সিস্টেমগুলির সাথে কথা বলার জন্য খুব সহজ javascript


3
একটি আকর্ষণীয় প্রশ্ন হবে যদি স্থিতভাবে ঘোষিত শ্রেণীর গতিশীল পূর্বপুরুষ থাকে। উদাহরণ: দশম শ্রেণি {পাবলিক ইন ওয়াই {get; সেট;}} ডায়নামিক (এক্স) এস = গেটস্পেশিয়ালএক্স (); কলিং স্ট্রিং পরীক্ষা = sY; একটি সংকলক ত্রুটি তৈরি করবে কারণ সংকলক ওয়াই সম্পর্কে জানে কিন্তু স্ট্রিং টেস্ট 2 = এস জেড সূক্ষ্ম সংকলন করবে এবং রান-টাইমে পরীক্ষা করা হবে। আমি এই জাতীয় অর্ধ গতিশীল ক্লাসের অনেক মূল্য সম্পর্কে চিন্তা করতে পারে!
মিমি মিমি মিমি

@ স্টারটিভেনস - আইআইআরসি, আপনি একটি ইন্টারফেসের মাধ্যমে গতিশীল আচরণ যুক্ত করতে পারেন (যদিও সি # তে ডায়নামিক ধরণের প্রয়োগের জন্য সরাসরি কোন ভাষা সমর্থন নেই - কেবল সেগুলি গ্রাস করে), সুতরাং এটি অবাস্তব নয় ... ওহ যে মজাটি আমাদের থাকতে পারে; - পি
মার্ক গ্রাভেল

যদিও এটি লক্ষণীয় গুরুত্বপূর্ণ যে কখনও কখনও এমন varপ্রকারগুলি নির্ধারণ করতে পারে যা সাব টাইপ এবং অন্তর্নিহিত কাস্টের কারণে পছন্দসই নয়। এটি হ'ল, অন্তর্নিহিত ক্যাসেটগুলি varঘটানোর সময় প্রত্যাশার চেয়ে স্থিতিশীল ভিন্ন কোনও প্রকারের সমাধান করতে পারে (সবচেয়ে উল্লেখযোগ্যভাবে আরও সাধারণ ধরণের ক্ষেত্রে, তবে এটি সীমাবদ্ধ নয়)। একটি তুচ্ছ উদাহরণ হ'ল বনাম বনাম , তবে অন্যান্য আরও স্নিগ্ধ (এবং বাস্তববাদী) ক্ষেত্রে ঘটতে পারে এবং সূক্ষ্ম বাগগুলি সৃষ্টি করতে পারে। object x = ""var x = ""var x = "" as object

মার্কের ভাল উদাহরণটির আরও বিশদ বর্ণনা করার জন্য, প্রথম ক্ষেত্রে (স্থির ধরণের সহ), সংকলক ঠিক কতগুলি ওভারলোডকেWriteLine কল করতে পারে তা জানে । এই "বাঁধাই" সংকলন-সময় ঘটে। ক্ষেত্রে ক্ষেত্রে dynamic, প্রকারটি খুব বেশি .Lengthহতে dynamicহবে এবং রান-টাইম না হওয়া পর্যন্ত কোন ওভারলোডটি (যদি কোনওভাবেই হয়) WriteLineসবচেয়ে উপযুক্ত হয় তা ঠিক হয় না। বাঁধাই রান-সময় হয়।
জেপ্পে স্টিগ নীলসন

4
আপনি যখন varভিজ্যুয়াল স্টুডিওতে কীওয়ার্ডটি হোভার করেন , আসল প্রকারটি প্রদর্শিত হয় যা অনুমান করা হচ্ছে। আপনাকে দেখায় যে সংকলনের সময়টি টাইপটি পরিচিত ছিল।
ক্রিশ্চিয়ান ফ্রেড

56

ভেরিয়েবল ঘোষিত Var পরোক্ষভাবে কিন্তু হয় স্ট্যাটিক্যালি টাইপ করা। ডায়নামিকের সাথে ঘোষিত ভেরিয়েবলগুলি গতিশীলভাবে টাইপ করা হয়। রুবি এবং পাইথনের মতো গতিশীল ভাষাগুলি সমর্থন করার জন্য এই ক্ষমতা সিএলআরতে যুক্ত করা হয়েছিল।

আমি যোগ করা উচিত যে এর অর্থ এই যে গতিশীল ঘোষণা রান সময়ে সুরাহা না হয়, Var ঘোষণা কম্পাইল-সময়ে মীমাংসা করা হয়।


42

আমি গতিশীল এবং ভের মধ্যে পার্থক্য ব্যাখ্যা করতে যাচ্ছি ।

dynamic d1;
d1 = 1;
d1 = "http://mycodelogic.com";

এটি কাজ করবে। সংকলক গতিশীল ভেরিয়েবলের ধরণটি পুনরায় তৈরি করতে পারে ।
প্রথমে এটি যেমন টাইপ তৈরি পূর্ণসংখ্যা এবং যে কম্পাইলার পরে টাইপ পুনঃ হবে স্ট্রিং
কিন্তু ক্ষেত্রে Var

var v1;  // Compiler will throw error because we have to initialized at the time of declaration  
var v2 = 1; // Compiler will create v1 as **integer**
v2 = "Suneel Gupta"; // Compiler will throw error because, compiler will not recreate the type of variable 


' Var ' কীওয়ার্ডটি ব্যবহার করার সময়, টাইপটি সংকলনের সময় সংকলক দ্বারা সিদ্ধান্ত নেওয়া হয়, যখন ' গতিশীল ' কীওয়ার্ড ব্যবহার করার সময়, টাইপটি রানটাইম দ্বারা সিদ্ধান্ত নেওয়া হয়।
' ভার ' কীওয়ার্ড, একটি দৃ strongly়ভাবে স্পষ্টভাবে টাইপ করা স্থানীয় ভেরিয়েবল যার জন্য সংকলক আরম্ভের এক্সপ্রেশন থেকে প্রকারটি নির্ধারণ করতে সক্ষম - লিনকিউ প্রোগ্রামিং করার সময় খুব দরকারী।
গতিশীল ধরণের চলক সম্পর্কে কম্পাইলার কোনও তথ্য রাখে না । সুতরাং সংকলক কোনও বুদ্ধি প্রদর্শন করবে না।
কম্পাইলার সংরক্ষিত মান সম্পর্কে সব তথ্য রয়েছে Var টাইপ তাই কম্পাইলার বুদ্ধিমত্তা প্রদর্শন করবে।
ডায়নামিক টাইপ ফাংশন আর্গুমেন্ট হিসাবে পাস করা যেতে পারে এবং ফাংশন এছাড়াও অবজেক্ট টাইপ ফিরিয়ে দিতে পারে
তবে
ভার টাইপ ফাংশন আর্গুমেন্ট হিসাবে পাস করা যায় না এবং ফাংশন অবজেক্ট টাইপকে ফিরতে পারে না। এই ধরণের ভেরিয়েবল স্কোপ যেখানে এটি সংজ্ঞায়িত হয় সেখানে কাজ করতে পারে।


14

var ইঙ্গিত দেয় যে স্ট্যাটিক টাইপ চেকিং (প্রারম্ভিক বাঁধাই করা) প্রয়োগ করা হয়। ডায়নামিক বলতে বোঝায় যে ডায়নামিক টাইপ চেকিং (দেরীতে বাইন্ডিং) প্রয়োগ করা হয়েছে। কোডের শর্তাবলী, নিম্নলিখিত কনডাসাইডার:

class Junk
{
    public void Hello()
    {
        Console.WriteLine("Hello");
    }
}

class Program
{
    static void Main(String[] args)
    {
        var a = new Junk();
        dynamic b = new Junk();

        a.Hello();

        b.Hello();
    }
}

আপনি যদি এইটি সংকলন করে এবং আইএলএসপি-র ফলাফলগুলি পরিদর্শন করেন, আপনি দেখতে পাবেন যে সংকলকটি কিছু দেরি বাইন্ডিং কোড যুক্ত করেছে যা খ থেকে হ্যালো () এর কলটি পরিচালনা করবে, যদিও প্রাথমিকভাবে বাইন্ডিং এ প্রয়োগ করা হয়েছিল, হ্যালো কল করতে সক্ষম () সরাসরি।

যেমন (আইএলএসপি বিচ্ছিন্ন)

using System;
namespace ConsoleApplication1
{
    internal class Junk
    {
        public void Hello()
        {
            Console.WriteLine("Hello");
        }
    }
}

using Microsoft.CSharp.RuntimeBinder;
using System;
using System.Runtime.CompilerServices;
namespace ConsoleApplication1
{
    internal class Program
    {
        [CompilerGenerated]
        private static class <Main>o__SiteContainer0
        {
            public static CallSite<Action<CallSite, object>> <>p__Site1;
        }
        private static void Main(string[] args)
        {
            Junk a = new Junk();      //NOTE: Compiler converted var to Junk
            object b = new Junk();    //NOTE: Compiler converted dynamic to object
            a.Hello();  //Already Junk so just call the method.

                          //NOTE: Runtime binding (late binding) implementation added by compiler.
            if (Program.<Main>o__SiteContainer0.<>p__Site1 == null)
            {
                Program.<Main>o__SiteContainer0.<>p__Site1 = CallSite<Action<CallSite, object>>.Create(Binder.InvokeMember(CSharpBinderFlags.ResultDiscarded, "Hello", null, typeof(Program), new CSharpArgumentInfo[]
                {
                    CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null)
                }));
            }
            Program.<Main>o__SiteContainer0.<>p__Site1.Target(Program.<Main>o__SiteContainer0.<>p__Site1, b);
        }
    }
}

পার্থক্যটি আবিষ্কার করার জন্য আপনি সবচেয়ে ভাল কাজটি করতে পারেন তা হ'ল এটির মতো একটি সামান্য কনসোল অ্যাপ্লিকেশন লিখুন এবং আইএলএসপিএস দিয়ে নিজে এটি পরীক্ষা করুন।


সংকলনের পরে আইএল উভয়কে কীভাবে আচরণ করে তার দুর্দান্ত বুনিয়াদী উদাহরণ। ধন্যবাদ।
কিংস

12

একটি বড় পার্থক্য - আপনার একটি গতিশীল রিটার্ন টাইপ থাকতে পারে।

dynamic Foo(int x)
{
    dynamic result;

    if (x < 5)
      result = x;
    else
      result = x.ToString();

    return result;
}

10

এখানে সাধারণ উদাহরণ যা ডায়নামিক (৪.০) এবং ভারের মধ্যে পার্থক্য দেখায়

dynamic  di = 20;
dynamic ds = "sadlfk";
var vi = 10;
var vsTemp= "sdklf";

Console.WriteLine(di.GetType().ToString());          //Prints System.Int32
Console.WriteLine(ds.GetType().ToString());          //Prints System.String
Console.WriteLine(vi.GetType().ToString());          //Prints System.Int32
Console.WriteLine(vsTemp.GetType().ToString());      //Prints System.String

**ds = 12;**   //ds is treated as string until this stmt now assigning integer.

Console.WriteLine(ds.GetType().ToString());          **//Prints System.Int32**

**vs = 12**; //*Gives compile time error* - Here is the difference between Var and Dynamic. var is compile time bound variable.

শিব মামিদি


2
আমার ধারণাটি হ'ল **কোড উদাহরণে অক্ষরের উপস্থিতি কেবলমাত্র জোর নির্দেশ করার উদ্দেশ্যে এবং এটি বাস্তব কার্যকরী কোডের অংশ হওয়ার উদ্দেশ্যে নয়।
ডেভিডআর

7

var একটি সাধারণ ধরণের ঘোষণার জন্য একটি শর্টহ্যান্ড, যেখানে আপনি সংকলকটিকে সঠিক ধরণের অনুমান করতে দিন।

dynamic একটি নতুন (স্ট্যাটিক) প্রকার, যেখানে সমস্ত চেক রানটাইম সময়ে সম্পন্ন হয়, সংকলক দ্বারা নয়।


4

ভেরিয়েবলের সাথে ঘোষিত ভেরিয়েবলের ধরণটি সংকলক দ্বারা নির্ধারিত হয়, এটি টাইপের নাম উল্লেখ করার শর্টকাট, এর বেশি কিছু নয়।

তবে ডায়নামিক রানটাইমে নির্ধারিত হলেও সংকলকটির প্রকৃত প্রকার সম্পর্কে কোনও ধারণা নেই এবং সেই চলক সহ সমস্ত পদ্ধতি / ক্ষেত্র / সম্পত্তি অ্যাক্সেস রানটাইমের সময় কার্যকর হবে।


3

এটি একটি দুর্দান্ত ইউটিউব ভিডিও যা ব্যবহারিক বিক্ষোভের সাথে varভিএস সম্পর্কে কথা বলে Dynamic

নীচে স্ন্যাপশট সহ আরও বিশদ বিবরণ দেওয়া হল।

ডায়ামিক দেরীতে বাঁধাই করা হয় (গতিশীলভাবে মূল্যায়ন করা হয়) যখন প্রথম দিকে বাঁধা হয় (স্থিরভাবে পরীক্ষা করা হয়)।

ভার কীওয়ার্ডটি আপনার ডান হাতের তথ্যটি দেখে এবং তারপরে সংকলনের সময় এটি বাম হাতের ডেটা টাইপ সিদ্ধান্ত নেয় other নীচের চিত্রটি দেখুন যেখানে আমরা যখন স্ট্রিং ডেটা এবং এক্স ভেরিয়েবলটি আমার সরঞ্জাম টিপতে স্ট্রিং ডেটা টাইপ প্রদর্শন করি।

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

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

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


2

ডায়নামিক ভেরিয়েবল এবং ভেরিয়েবল উভয়ই যে কোনও ধরণের মান সঞ্চয় করতে পারে তবে ঘোষণার সময় এটি 'var' আরম্ভ করার জন্য প্রয়োজনীয়।

সংকলকটির 'পরিবর্তনশীল' ধরণের চলক সম্পর্কে কোনও তথ্য নেই। var সংকলক নিরাপদ অর্থাৎ সংকলকটিতে সঞ্চিত মান সম্পর্কে সমস্ত তথ্য রয়েছে, যাতে এটি রান-টাইমে কোনও সমস্যা না ঘটে।

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

গতিশীল কাস্টিংয়ের ক্ষেত্রে আপনার প্রয়োজন নেই তবে আপনার সম্পত্তি এবং সঞ্চিত প্রকারের সাথে সম্পর্কিত পদ্ধতিগুলি জানতে হবে, তবে বিভিন্ন ক্ষেত্রে কাস্ট করার দরকার নেই কারণ সংকলকটির অপারেশন করার জন্য সমস্ত তথ্য রয়েছে।

গতিশীল: প্রতিবিম্ব বা গতিশীল ভাষা সমর্থন ব্যবহার করে বা COM অবজেক্টের সাথে কোডিং করার সময় দরকারী, কারণ আমাদের কোড কম পরিমাণে লেখার প্রয়োজন।

var: লিনাকের প্রশ্নের বাইরে ফলাফল পাওয়ার জন্য দরকারী। 3.5 ফ্রেমওয়ার্কে এটি লিনাক বৈশিষ্ট্য সমর্থন করার জন্য প্রবর্তন করে।

তথ্যসূত্র: কাউন্সেলিংবিয়াবি


2
  1. ভার এবং গতিশীল সংজ্ঞা টাইপ।
  2. গতিশীল রান সময় সময় সংকলন সময়ে var।
  3. ভ্যারো ডিক্লেয়ারেশন এবং ইনিশিয়ালেশনে উভয়ই ধ্রুবক পরিবর্তনশীলের মতো বাধ্যতামূলক
  4. গতিশীল সূচনাটি পঠনযোগ্য ভেরিয়েবলের মতো রান সময়ে হতে পারে।
  5. ভের টাইপে যে কোনও প্রকারের সময় সূচনার সময় সিদ্ধান্ত নেওয়া হয় তবে আর পরিবর্তন করা যায় না
  6. গতিশীল কোনও ধরণের এমনকি ব্যবহারকারী ডেটাটাইপও সংজ্ঞায়িত করতে পারে।

1

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


1
  1. ভার (অন্তর্ভুক্ত টাইপড স্থানীয় ভেরিয়েবল) কীওয়ার্ডটি স্থানীয় ভেরিয়েবলগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয় Var ভারের ক্ষেত্রে অন্তর্নিহিত ডেটা টাইপ প্রাথমিক অ্যাসাইনমেন্টের ভিত্তিতেই সংকলন সময়ে নির্ধারিত হয় O একবার প্রাথমিক অ্যাসাইনমেন্টটি ভার টাইপের সাথে তৈরি করা হয়েছে, তারপরে এটি দৃ strongly়ভাবে টাইপ হয়ে যাবে। যদি আপনি ভার টাইপের সাথে কোনও বেমানান মান সংরক্ষণ করার চেষ্টা করেন তবে এর ফলে সংকলন সময় ত্রুটি হবে।

উদাহরণ:

Var strNameList=new List<string>(); By using this statement we can store list of names in the string format. 
strNameList.add("Senthil");
strNameList.add("Vignesh");

strNameList.add(45); // This statement will cause the compile time error.

তবে ডায়নামিক টাইপের মধ্যে অন্তর্নিহিত ধরণটি কেবল রান টাইমে নির্ধারিত হয় yn ডায়নামিক ডাটা টাইপটি সংকলনের সময় পরীক্ষা করা হয় না এবং এটি দৃ strongly়ভাবে টাইপও করা হয় না dyn আমরা গতিশীল প্রকারের জন্য কোনও প্রাথমিক মান নির্ধারণ করতে পারি এবং তারপরে এটি কোনও নতুনকে পুনর্নির্দিষ্ট করা যেতে পারে any তার জীবন সময় মান।

উদাহরণ:

dynamic test="Senthil";
Console.Writeline(test.GetType())  // System.String

test=1222;
Console.Writeline(test.GetType())  // System.Int32

test=new List<string>();
Console.Writeline(test.GetType())  //System.Collections.Generic.List'1[System.String]

এটি ইন্টেলিজেন্স সমর্থনও সরবরাহ করে না lin আমরা লিনাকের সাথেও কাজ দিলে এটি আরও ভাল সমর্থন দেয় না ec কারণ এটি ল্যাম্বদা এক্সপ্রেশন, এক্সটেনশন পদ্ধতি এবং বেনামে পদ্ধতিগুলিকে সমর্থন করে না।


1

এখানে পার্থক্য রয়েছে

  • var স্থিতিশীলভাবে টাইপ করা (সংকলন সময়), গতিশীল গতিশীল টাইপ করা হয় (রান সময়)

  • ভেরিয়েবল হিসাবে ভেরিয়েবল কেবল স্থানীয়ভাবে ব্যবহার করা যায়, ডায়নামিক ভেরিয়েবলগুলি প্যারাম হিসাবে ফাংশন হিসাবে প্রেরণ করা যেতে পারে (ফাংশন স্বাক্ষর একটি প্যারামকে ডায়নামিক হিসাবে সংজ্ঞায়িত করতে পারে তবে ভার নয়)।

  • ডায়নামিকের সাথে বৈশিষ্ট্যগুলির রেজোলিউশন রানটাইমের সময় ঘটে এবং এটির ক্ষেত্রে ঘটে না যার সংকলন সময় ডায়নামিক হিসাবে ঘোষিত কোনও ভেরিয়েবল এমন কোনও পদ্ধতিতে কল করতে পারে যা উপস্থিত থাকতে পারে বা নাও পারে এবং তাই সংকলক ত্রুটি ছুঁড়ে না ফেলে।

  • ভেরির সাথে টাইপ কাস্টিং সম্ভব নয় তবে গতিশীল এর সাথে এটি সম্ভব (আপনি কোনও বস্তুকে গতিশীল হিসাবে ভেরিয়েটের হিসাবে নাও কাস্ট করতে পারেন)।

অরুণ বিজয়রাঘবন

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