SORU
9 ŞUBAT 2014, Pazar


Transfer kurucu NULL

Yapıcı parametre Double[] ile yürütülür neden anlayamıyor?

using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            D myD = new D(null);
            Console.ReadLine();           
        }

    }

    public class D
    {
        public D(object o)
        {
            Console.WriteLine("Object");
        }
        public D(double[] array)
        {
            Console.WriteLine("Array");
        }
        public D(int i)
        {
            Console.WriteLine("Int");
        }
    }
}

İlk kurucu referans türünde bir parametre alır çünkü bence. null çünkü bir referans parametresi ile ilk kurucu başvuru türleri için varsayılan değerdir.

Ama object, aynı zamanda bir başvuru türü bir şey anlamıyorum.

CEVAP
9 ŞUBAT 2014, Pazar


Ama hiçbir nesne neden anlayamıyor? Ayrıca, bir başvuru türü mü?

Evet, double[] object null ikisi de örtük olarak dönüştürülebilir yani referans türleridir. Ancak, üye aşırı yükleme genellikle daha özel bir tür iyilik, double[] yapıcı kullanılır. Daha fazla ayrıntı için C bölüm 7.5.3# belirtimi (ve çocuk orada bir sürü detay var).

Bölüm 7.5.3.5: özellikle

İki farklı T1 ve T2, T1 verilir aşağıdaki tutar en az biri varsa: T2 daha iyi bir dönüşüm hedef

  • T2 T1 örtülü bir dönüşüm var, ve T1 T2 hiçbir örtülü dönüşüm var

T1 double[] T2 object bulunduğu durum burada. Bir örtük dönüştürme double[] object ama hiç bir örtük dönüştürme object double[] double[] daha iyi bir dönüşüm hedef daha object.

Eğer object kurucu güç kullanmak istiyorsanız, sadece koyun

D myD = new D((object) null);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MVLV28

    MVLV28

    17 Mart 2008
  • Myron and Nejusha dance

    Myron and Ne

    2 AĞUSTOS 2012
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011