Bazı IronPython komut dosyalarını eklentiler olarak kullanan bir proje üzerinde çalışmak, C# kodlu işlevselliği kullanır. bu biraz AncakC#/IronPython Interop ve "float" veri türü
mc = MyClass()
mc.ValueDictionary = Dictionary[int, float]({1:0.0, 2:0.012, 3:0.024})
: Böyle IronPython kodundan o özelliğin değerini, set
Dictionary<int, float>
: benim C# sınıfları birinde, ben tipte bir özelliği vardır kod çalıştırılır nedeniyle, aşağıdaki istisna atar:
Microsoft.Scripting.ArgumentTypeException was unhandled by user code
Message=expected Dictionary[int, Single], got Dictionary[int, float]
şeyler daha garip hale getirmek için, orijinal olarak C# kodu
kullanılanDictionary<int, double>
Ancak IronPython'da "double" tipi bulamadım, bir kapriste "float" denedim ve hata yapmadan iyi çalıştı. Ama şimdi her iki ucunda (başlangıçta kullanıyor olmalıydı) şamandıralar kullanıyor ve C# kodunun "Tek" veri tipini kullandığını düşünüyor ?!
Hatta C# kütüphanesi ve malum olduğu üzere nesne tarayıcıda kontrol ettik, bu çok, gerçekten burada bir soru görmüyoruz "Single"
Teşekkür ederim, mükemmel cevap. Ve evet, sanırım eşlemelerin ne olduğunu bir türlü anlattım, nedenini bilmiyordum. Sadece C# 'da yüzebilen kontrgerifçi Python'da yüzemezdi. –
Hoş Geldiniz! Son zamanlarda benzer bir sorun yaşadım (C#/Python Interop). Onun gerçekten çok karşı sezgisel, tüm C gibi dilleri gibi, Java ve daha birçok kullanım tek hassas sayılar için float. –