C# toplanması, örneklerin dışında herhangi bir yararlı başvuru kaynağı bulacaktır.C# 'de VB'nin "Dim" ifadesinin karşılığı nedir?
Peki, Dim # içinde nedir?
C# toplanması, örneklerin dışında herhangi bir yararlı başvuru kaynağı bulacaktır.C# 'de VB'nin "Dim" ifadesinin karşılığı nedir?
Peki, Dim # içinde nedir?
VB'de Dim
, belirli bir türden (veya belirtilmemişse, değişken türden) bir değişken bildirir. Dim x as Foo
, x
adı verilen Foo
türünde bir değişken bildirir. Ayrıca aynı adımda atayabilirsiniz
Foo x;
int i;
: C# '
, eşdeğer olduğu gibi, değişkenin adının başına tipini etmektir
Foo x = new Foo();
int i = 6;
C# tipi çıkarım destekler bunu da yapabilirsiniz: VB bir ilgili türün olmadan
// Compiler infers type of x and i based on this assignment.
var x = new Foo(); // x is now of type Foo
var i = 10; // i is now of type int
A Dim
benzerdir C# Object
olarak bir tür ilan etmek:
object o = ...; // An object instance can hold any value or reference type.
evet, ancak var LINQ için çoğunlukla getirildi ve eğer var Var Var = 500; MyVar = "Dize Değiştir"; 'Bir hata alacaksınız. Diğer diller bu kısıtlamaya sahip değil –
Son, örtük olarak yazılan bir değişkenin örneğidir; Yazım tipi farklıdır. – jason
@Roboto: C# büyük ölçüde statik olarak yazılmıştır.Tanımladığınız şeyi yapamazsınız çünkü bir değişkenin türü değişmez değildir: bir tür olarak bildirdiğinizde, bu şekilde kalır. @Jason: Kapalı yazım, tür çıkarsama olmadan gerçekleşemez. Oldukça yakından bağlantılılar. Esas olarak, yazım çıkarımı "sağ tarafta" ne olur, böylece derleyici belirli bir türe bağlanabilir. –
benzer eşdeğer
object Obj;
veya
int myInt;
string myString;
var
var
tanıtıldı.
Eğer VB Dim
demek olduğunu varsayarsak, C# kullanan ya var
veya türünün adı yeni tip var
kelime VB gibi bir varyant tipi olmadığını
string myString = "Hello";
// is the same as
var myString = "Hello"; // type is inferred
Not ilan etmek. Bu bir implicitly typed variable.
Dim, VB.NET'te kullanılan değişkenlerin bildirimi için kullanılan bir anahtar sözcüktür. C# 'da herhangi bir kullanım hakkında bilmiyorum. VB 9 ve C# 3'den bahsetmemiz şartıyla, (kaba) eşdeğerinin var anahtar kelimesi olacağını söyleyebilirim. Ama bence amaçlanan sorunun ne olduğunu bilmeden önce ayrıntılarla ilgili kavgalara girmek işe yaramıyor;)
Downvoted; C# içinde hiçbir "Dim" eşdeğeri yoktur. VB'de, Dim anahtar sözcüğü kullanılır Bir değişken bildirme C# olarak, bu niyet bir deyimi başlatmak için bir tür kullanarak örtülüdür.C# içindeki anahtar sözcüğü, bir tür adı yerine kullanılabilir, ancak yine de güçlü bir türdür ve değişkeni gerektirir Aynı ifadede başlatıldı. Değişken için kullanılan tür, va'ye atanan veri türünden çıkarılır. riable. –
Kesinlikle haklısınız, Dim'i kabaca ** eşdeğerine denk getiren tek şey, her iki dilde de bir değişken bildirmek için kullanıldıklarıdır. Bununla birlikte, VB'nin 9 sürümünde, Option Infer'ı açarak, benzer şekilde davranmalarını sağlayabilirsiniz. –
Ben Learning C# 3.0 önerebilirsiniz (ve daha sonra, belki C# 3.0 in a Nutshell ve C# in Depth) C# öğrenmek için. Dilin temellerini öğrenmek ve düşüncelerinizi VB'den C# 'ye (veya bu konuyla ilgili başka bir dile) dönüştürmek yerine "dönüştürmek" veya "dönüştürmek" yerine, "C#' yı düşünme" yi başlatmak iyi bir fikir olabilir.
Edit: dedi ki; Öğrenirken öğrendiğiniz yeni dili, dilediğiniz zaman, dil arasındaki farkları öğrenmek için bildiğiniz biriyle karşılaştırmak istersiniz.Benim düşünceme göre, yeni bir dil öğrenirken, prensipleri ve temel farklılıkları kavramakla ilgili daha çok şey var :)
Başlamak açısından C# 'yi Derinlikli olarak tavsiye etmem. Bu gerçekten C# 1'in makul bir kavrayışına sahip insanlara yöneliktir. –
@Skeet: Katılıyorum. Sanırım bundan daha açık olmalıydım. Birincisi (Öğrenme C# 3.0) başlamak için harika bir kitaptı, en azından öyle düşündüm. PS: Cevabım hakkında yorum yapmak için onur duydum^^ – Leif
Bu aslında biraz zor, çünkü Dim
çeşitli şekillerde kullanılabilir. İlk durum, bildirirken değişkenin türünü açıkça belirtirseniz olur. Bir başlatma ifadesini kullanır, ancak açıkça türünü belirtmek yoksa
// Visual Basic
Dim num as Integer
// C#
int num;
ikinci olgudur: Bu durumda, tip adını içeren C# bildiriminde karşılık gelir. Bu durumda, VB (en az yeni sürümler), türün çıkarılması için tür çıkarsayı kullanır. Bu C# var
anahtar kelimeye karşılık gelen:
// Visual Basic
Dim str = "Hello world"
// C#
var str = "Hello world"
Son olarak, üçüncü bir durum var - Herhangi bir tür vermeden ve başlatma ifadesini (en azından Option Strict
ile kapatılmış) sağlamadan Visual Basic değişken bildirebilirsiniz. Bu durumda, VB.NET, değişkeni Object
türünde bir değer olarak bildirir, ancak nesnenin herhangi bir yöntemini çağırmanıza da izin verir. Bu yeni dynamic
anahtar kelime ile ne C# 4.0 oldukça yakındır:
// Visual Basic
Dim sth
sth = new Random()
sth.Next()
// C#
dynamic sth;
sth = new Random();
sth.Next();
[DÜZENLE]
Son olarak, Visual Basic kullanım Dim
son durum diziler bildirmektir. C#, diziler sadece başka bir veri türü olarak kabul edilir, bu nedenle beyanı Ben tamsayılar/dizeleri daha önce yazdıklarını benzer:
// Visual Basic
Dim ints(10, 10) as Integer
// C# - we need to initialize the array if size is specified
int[,] ints = new int[10, 10];
// C# - we can use type inference too
var ints = new int[10, 10];
[/ DÜZENLEME]
(Gerçekten VB değilim uzman, ama bence bunlar üç olası durum. Yanılıyorsa lütfen beni düzeltin!)
VB.net'in Dim'inin C# eşdeğerini soruyor musunuz? Bu konu için – spender
, dünyadaki 'Dim' VB.NET'te ne anlama geliyor? Ne için kullanıldığını biliyorum ama hala ne anlama geldiğini bilmiyorum. –
@Ben Dim, – PeanutPower