简体   繁体   中英

C# Declaration Question

I am very new to c#, but I am learning more every day.

I am wondering what the following means:

private DataIdentifier dataIdentifier;

Why do they write like this? It is almost the same name but they use big D in the first word.

This declares a member variable (ie a "field") in a class.

private is the access modifier . It specifies that the variable can only be accessed from within the class. The access modifier is optional, and defaults to private (but it's considered best practice to be explicit anyway).

DataIdentifier is the type of the variable (ie, only instances of the DataIdentifier class can be put into the variable).

dataIdentifier is the name of the variable. This is what you write in the code when you want to access the object that's being held in the variable.

Note: Technically, objects are not actually "in" a variable; the variable is typically a pointer to a location in memory where the object actually is (it "references" an object).

As you learn more C#, you'll see a common idiom where the name of the property is the same as the name of the type:

public SpaceShip SpaceShip;

This is allowed since the compiler is smart enough to know whether you're referring to the variable or the class itself when you type SpaceShip in your code, just from the context.

DataIndentifier is a type.

dataIdentifier is the name of a field of that type.

The similarity of the names is entirely coincidental.

private DataIdentifier dataIdentifier; 

DataIdentifier is a Type whereas dataIdentifier is a variable declared of that type

Like

private int a;

where int is a type and a is a variable of type Int

This question has been answered several times over, but I would like to instead recommend what I believe to be the BEST introductory book for C#. Even if you don't like learning from books, you'll like this one:

Head First C#

Check out the free chapters and if you like it, buy it. I guarantee you won't be sorry. Hope it helps.

DISCLAMER: I am in no way affiliated to OReilly Media or any of its subsidiaries... ;)

It is just another type of notation. It's really a silly variable name. I wouldn't recommend you follow the same convention. DataIdentifier is the class/object type. private is the access modifier.

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

DataIdentifier is the type of the variable
dataIdentifier is the name of the variable (it is of the type DataIdentifier)

C# is case sensitive. DataIdentifier and dataIdentifier are two different things.

Here DataIdentifier is the type and dataIdentifier is the variable.

It may be useful for you to relate the example to the actual grammar of C#.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM