. NET'te PHP değişken değişkenler

4 Cevap ûnet

. NET yerel PHP'nin benzer bir şey desteklemiyor variable variables?

Eğer değilse, nasıl 1 böyle bir özellik en kolay uygulanan olabilir?


1 değişken değişkenler her zaman kötü olduğunu düşünüyorsanız, sizin durumda devlet özgür hissediyorum ama asıl soru şu: how onlar uygulanabilir?

4 Cevap

Bu derinden dynamic languages . C# has its roots as a static, object-oriented language, and up to C# 3.0 this means no luck accomplishing what you want in any proper way. However, C# 4.0/.NET 4.0 introduces the dynamic anahtar kelime hemen hemen her dinamik dil vardır , which allows variables to be dynamically typed, as in PHP. Unfortunately, although this is a leap forward in the path of C# becoming a static/dynamic hybrid language, it is missing the crucial eval fonksiyonu gömülü bir özelliktir. (Dahili davranışı aynı olmaz gerçi) C # 5.0/.NET 5.0 söylenti compiler-as-a-service özelliği ile, bu etkin tanıtılacak. O zamana kadar, bir Dictionary değişken adları depolamak için kullanarak kesmek hiçbir iyi çözüm kısa var.

Neden sadece bir sözlük kullanmak değil mi?

Dictionary<string,string> stuffHash = new Dictionary<string,string>();

string varname = "TheNameOfTheVar";
string value = "foo";

stuffHash[varname] = value;

Bu çirkin bir şey yapmak için hiçbir gerçek bir ihtiyaç.

. Bir [güçlü yazılmış bir dildir] çünkü muhtemelen ağırlıklı olarak [1] - Net doğal "değişken değişkenleri" desteklemiyor.

Ancak, PHP değişken değişkenler olarak benzer davranışları gerçekleştirmek için kullanılan olabilir, hangi zamanında, dinamik bir türü örneklerini oluşturmak için destek var.

Hayır,. NET dillerinden hiçbiri böyle bir şey destekleyecek. Bu derleyici takımlarından biri tarafından uygulanabilir ama onlar hiç bunu yapacağını sanmıyorum.

Bu bir dize ilişkilendirmek için izin verecek - üzere how bu (C # derleyicisi ekibi tarafından değil) bir Dictionary<String,Object> değişken değişkenlerin tüm saklamak olacaktır sizin tarafınızdan uygulanabilir Bir nesne ile.

Ben gerçekten (diğer bir deyişle, ben bunları kullanmak için ihtiyacı için iyi bir argüman hiç duymadım) değişken değişkenler tarafından çözüldü ne sorun anlamadım. Ben bunu değişken değişkenler olmadan sorunu çözmek için daha iyi bir yaklaşım bulmak çok zor olmaz hayal gibi onlar ihtiyaç vardı bir örnek görmek için ilgi olacaktır.