C#中对于变量的声明和初始化

  C#变量初始化是C#强调安全性的另一个例子。简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量。大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待。

1.在C#中,变量的声明格式为:

  数据类型   变量名;

2.变量的赋值格式为:

  变量名 = 数据;

3.一般情况下,都是先声明后赋值,或者在声明变量的同时就赋初值。然而有些时候在程序的开发设计中,往往忘了要赋初值(即进行初始化),这样就会导致在程序的设计中,会出现意想不到的错误。

解释:当我们在声明一个变量的时候,此时会进行内存分配(比如int i;此时会在堆栈上分配4个字节),也就是在进行变量声明时会进行内存的分配,以保存该类型对应的值。至于我们声明一个变量后不进行赋值便使用,此时是编译器会报错,错误提示是:使用了一个未赋值的变量。在.NET中有一个概念应该是大家都很熟悉的,那就是类型安全。何为类型安全,这个提问应该说是个最好的例证。如果有注意,在.NET编译器中,对未赋值的变量进行使用的时候,编译器会提示这是个错误,而在其他语言编译器中对未赋值变量的使用提示的是警告。

4.C#中使用两种方式保证类型安全:

1)变量是类或者结构中的字段,如果没有进行显示赋值,在默认状态下创建相应变量时,其值为对应类型默认值。

2)方法的局部变量必须在代码中显示初始化,之后才可以在语句中进行使用。初始化不是在声明变量时进行的,编译器会通过检查所有可能的路径,如果检测到局部变量在初始化之前就使用了它的值,编译器就会产生错误。

1 public static void Main()
2 {
3     int a;
4     Console.WriteLine(a);
5     return;
6 }

以上代码在编译器中报:Use of unassigned local variable ‘d‘   (使用了未赋值的局部变量“a”)。

虽然这种保护机制让人很烦,不过为了养成良好的变成习惯,还是应该使用变脸的时候,要在声明变量的同时进行初始化,以免给自己带来不必要的麻烦。

时间: 2024-12-15 01:51:50

C#中对于变量的声明和初始化的相关文章

c#中变量的声明和初始化

int i; string text; for(i = 0 ; i < 10; i++) { text = "Line"+Convert.ToString(i); Console.WriteLine("{0}",text); } Console.WriteLine("Last text in loop :{0}",text); 这段代码编译也会失败,变量text必须在使用前进行声明和初始化,而text是在循环中初始化的,赋给text的值在循

C++中类中常规变量、const、static、static const(const static)成员变量的声明和初始化

C++类有几种类型的数据成员:普通类型.常量(const).静态(static).静态常量(static const).这里分别探讨以下他们在C++11之前和之后的初始化方式. c++11之前版本的初始化 在C++11之前常规的数据成员变量只能在构造函数里和初始化列表里进行初始化.const类型的成员变量只能在初始化列表里并且必须在这里进行初始化.static类型只能在类外进行初始化.static const类型除了整型数可以在类内初始化,其他的只能在类外初始化.代码如下: class A {

2.1 变量的声明及初始化

1 //声明变量的同时进行初始化 2 int intVariable = 10; 3 4 //先声明一个变量,然后再初始化 5 string strVariable; 6 strVariable = "Variable"; 7 8 //同时声明多个变量并初始化,其中变量的类型必须一致 9 int intVarialbe1 = 10, intVariable2 = 20, intVariable3 = 30; 10 string strVariable1 = "Variable

类的静态成员变量的声明与初始化问题总结

1. 类的静态成员变量的声明原则: 在.H文件中,用static 关键字进行前缀修饰即可,不可以直接进行初始化,基础变量除外. 如果要初始化自定义的类型,则需要在CPP文件中进行初始化 static CPerson* Police; 1 //定义状态环境类 2 /* 3 环境状态类: 4 1. 封装状态静态常量 5 2. 聚合状态 6 3. 提供上层接口 7 */ 8 class CStateContex : public CIState 9 { 10 public: 11 CStateCont

3.Java变量的声明、初始化和作用域

一.Java变量的声明 在 Java 程序设计中,每个声明的变量都必须分配一个类型.声明一个变量时,应该先声明变量的类型,随后再声明变量的名字.下面演示了变量的声明方式.     double salary;     int age;     Boolean op; 其中第一项称为变量类型,第二项称为变量名.分号是必须的,这是 Java 语句的结束符号. 同一类型的不同变量,可以声明在一行,也可以声明在不同行,如果要声明在同一行中,不同的变量之间用逗号分隔,例如下面的例子.     int st

有关变量的声明和初始化的问题

1.马上就要考java了,于是刷几道题,题目不难但是比较基础,比较细节,其中一道题目如下: 为了弄明白那些变量需要提前声明,我做了如下几个小测试: 测试一: 1 package priv.xiaomin.test; 2 3 public class Test { 4 private static boolean test; 5 public static void main(String[] args) { 6 System.out.println(test); 7 } 8 } 测试结果:fal

1.类中数据成员的声明与初始化总结

在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样 class A   { private: static int count ; // 类内声明 }; int A::count = 0 ; // 类外初始化,不必再加static关键字 为什么?因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的. 什么东西能在类内初始化 能在类中初始化的成员只有一种,那就是静态常量成员. 这样不行 class A  

4.PL_SQL——变量声明以及初始化,字符串分隔符

一.变量的作用 PL/SQL既然是编程语言,就必然会用到变量.和其他程序语言类似,PL/SQL中的变量主要有以下作用:1. 用来临时的存放数据:2.用来操作数据:3. 重复使用数据. 例如上一节中举的例子,就用到了变量: DECLARE v_fnameVARCHAR2(20); -- 声明变量 BEGIN SELECT first_name INTO v_fname -- 将SELECT语句查询到的数据存放到变量v_fname中 FROM employees WHERE employee_id

JS中的变量和数据类型

所谓变量,就是里面存储的数据是可以改变的. 在使用变量之前,我们需要先声明变量.声明变量的关键字有var  let   const 在ES里面声明变量可以使用var,如下: //var 变量名 var i; 如果声明了一个变量,但是没有给该变量赋值,那么该变量默认的值为undefined var i; console.log(i); //undefined 初始化 所谓初始化,就是给变量进行第一次赋值 var i; i=5;//初始化 console.log(i); 变量的声明和初始化是可以同时