2011-08-02 168 views
0

我对c#很新,但我每天都在学习更多。C#声明问题

我想知道以下手段:

private DataIdentifier dataIdentifier; 

他们为什么要这样写?它的名字几乎相同,但在第一个单词中使用了大D。

+1

我喜欢它更好地与拼写错误,让我想到一个模糊的小猫学习C# –

回答

0

它只是另一种表示法。这真是一个愚蠢的变量名称。我不建议你遵循相同的约定。 DataIdentifier是类/对象类型。 private是访问修饰符。

7

这声明了类中的成员变量(即“字段”)。

privateaccess modifier。它指定变量只能从类中访问。访问修饰符是可选的,默认为private(但无论如何,它被认为是最好的实践)。

DataIdentifier是变量的type(即,只有DataIdentifier类的实例可以放入变量中)。

dataIdentifier是变量的名称。当你想访问变量中保存的对象时,这就是你在代码中编写的内容。

注意:从技术上讲,对象实际上不是“在”变量中;该变量通常是指向实际存在对象的内存位置的指针(它“引用”对象)。

当你了解更多C#中,你会看到一个常见的成语,其中属性的名称是相同类型的名称:

public SpaceShip SpaceShip; 

这是允许的,因为编译器是足够聪明到只需从上下文中在代码中输入SpaceShip时知道您是指变量还是类本身。

+0

好答案。然而,只有在当前类型中未定义'SpaceShip' *时,才会编译'Public SpaceShip SpaceShip'。 (变量/方法/属性不能共享带有封闭类型的名称 - 这只会让*太混乱!) – 2011-08-02 19:58:59

+0

@pst:谢谢你,我没有意识到!不过,嵌套类型在实践中并不常见。 – Cameron

+0

通常在我的代码中很常见:( – 2011-08-02 20:00:58

1

DataIndentifier是一种类型。

dataIdentifier是该类型字段的名称。

名称的相似性完全是巧合。

0

DataIdentifier是类型(类或结构),dataIdentifer是名称。

0

DataIdentifier是可变
dataIdentifier的类型是可变(它是类型DataIdentifier的)

0

C#是大小写敏感的名称。 DataIdentifier和dataIdentifier是两个不同的东西。

这里DataIdentifier是类型,dataIdentifier是变量。

+0

在这种情况下,即使他们*是*相同的情况下,他们仍然*是指*两个不同的东西,只是基于* where *在语法生成中使用。 – 2011-08-02 19:53:26

1
private DataIdentifier dataIdentifier; 

DataIdentifier是类型而dataIdentifier是声明类型的变量

喜欢

private int a; 

其中int是一种类型和a是类型的变量int

+0

It在私人DataIdentifier DataIdentifier;在许多情况下是有效的(第一个'DataIdentifier'是类型的,第二个是变量名,就像上面一样),这只是变得令人困惑...... – 2011-08-02 19:52:47

+0

@ pst,是的,另外,这是一个'Camel case'类型的命名,还有另外一种我现在不记得的类型,我宁愿不用与类型名称相同的名称声明变量...以便消除混淆 – Rahul

+0

DataIdentifier是UpperCase(或CapWords或...),而dataIdentifier是camelCase(不同之处在于如果第一个字符也是大写) – 2011-08-02 23:01:27

0

它可能对您有用,将示例与C#的实际grammar关联起来。

 
field-declaration: 
    attributesopt field-modifiersopt type variable-declarators ; 

field-modifiers: 
    field-modifier 
    field-modifiers field-modifier 

field-modifier: 
    new 
    public 
    protected 
    internal 
    private 
    static 
    readonly 
    volatile 

variable-declarators: 
    variable-declarator 
    variable-declarators , variable-declarator 

variable-declarator: 
    identifier 
    identifier = variable-initializer 

variable-initializer: 
    expression 
    array-initializer 
+0

也许显示适用于考试的语法ple ... – 2011-08-02 19:57:54

1

这个问题已经回答过好几次,但我想,而不是推荐什么我认为是对C#的BEST入门书籍。即使你不喜欢学习书本知识,你会喜欢这一个:

Head First C#

退房的免费章节,如果你喜欢它,买到它。我保证你不会感到抱歉。希望能帮助到你。

DISCLAMER:我绝不隶属于欧莱礼或其任何附属...的;)

+0

真的...我也喜欢'Head First'系列 – Rahul