2011-07-20 2 views
0

Почему я не могу объявить, например, var myVar = "myvariable" как глобальную переменную в классе ?. Есть ли способ сделать это?Объявление var внешних функций

+1

Тогда что такое 'class'? – Rahul

+0

Возможный дубликат [Почему поля классов не могут быть var?] (Http://stackoverflow.com/questions/4461597/why-class-fields-cannot-be-var) –

ответ

3

Beginning in Visual C# 3.0, variables that are declared at method scope can have an implicit type var

Из-за спецификации C# они находятся только в области методов.

9

why i can't declare for example var myVar="myvariable" as a global variable in a class?.

Так как именно designers of the C# language решил осуществить его.

Is there any way to do it?.

Нет, не существует.

+0

Вы могли бы объяснить почему? почему дизайнеры приняли это решение? – naveen

+0

@naveen, вы прочитали сообщение в блоге, которое я связал с: http://blogs.msdn.com/b/ericlippert/archive/2009/01/26/why-no-var-on-fields.aspx Это написано одним из разработчиков компилятора C#, и в этом он объясняет причину. –

+0

no i din't. Я отредактировал eric lippert как дизайнеры в своем предыдущем посте перед отправкой. – naveen

0

var - это ключевое слово, обычно используемое для анонимных типов. Затем, объявив поле или глобальную переменную, вы должны явно указать реальный тип для своего поля.

From MSDN:

  • var can only be used when a local variable is declared and initialized in the same statement; the variable cannot be initialized to null, or to a method group or an anonymous function.

  • var cannot be used on fields at class scope.

  • Variables declared by using var cannot be used in the initialization expression. In other words, this expression is legal: int i = (i = 20) ; but this expression produces a compile-time error: var i = (i = 20) ;

  • Multiple implicitly-typed variables cannot be initialized in the same statement.

  • If a type named var is in scope, then the var keyword will resolve to that type name and will not be treated as part of an implicitly typed local variable declaration.

Смотрите также: Eric Lippert opinion

1

Нет, вар только для локально контекстные переменные. См. this

0

Неявный тип может быть помещен в область метода как локальная переменная.

0

Я думаю, что вы ищете статическую переменную.

Например

public class AGlobalVar 
{ 
    public static int AVar = 10; 

} 

Вы должны быть в состоянии получить доступ к переменной в любом месте приложения. Для доступа к нему просто перейдите на AGlobalVar.AVariable.

Смежные вопросы