C#常量和编程实例
来源:互联网 发布:如何培养职业道德知乎 编辑:程序博客网 时间:2024/06/06 04:44
C#常量
一
1
常量是在编译时已知并在程序的生存期内不发生更改的不可变值。 常量使用 const 修饰符进行声明。 只有 C# 内置类型(System.Object 除外)可以声明为 const。
用户定义的类型(包括类、结构和数组)不能为 const。 请使用 readonly 修饰符创建在运行时初始化一次即不可再更改的类、结构或数组。
C# 不支持 const 方法、属性或事件。
可以使用枚举类型为整数内置类型(例如 int、uint、long 等等)定义命名常量。 参见 enum。
常量必须在声明时初始化。 例如:
class Calendar1
{
public const int months = 12;
}
当编译器遇到 C# 源代码(例如 months)中的常量修饰符时,将直接把文本值替换到它生成的中间语言 (IL) 代码中。 因为在运行时没有与常量关联的变量地址,所以 const 字段不能通过引用传递,并且不能在表达式中作为左值出现。
当引用在其他代码如 DLL 中定义的常量值时应十分谨慎。 如果新版本的 DLL 为常量定义了新的值,程序仍将保留旧的文本值,直到针对新版本重新编译程序。
可以同时声明多个相同类型的常量,例如:
class Calendar2
{
const int months = 12, weeks = 52, days = 365;
}
如果不会造成循环引用,用于初始化一个常量的表达式可以引用另一个常量。 例如:
class Calendar3
{
const int months = 12;
const int weeks = 52;
const int days = 365;
const double daysPerWeek = (double) days / (double) weeks;
const double daysPerMonth = (double) days / (double) months;
}
常量可标记为 public、private、protected、internal 或 protectedinternal。 这些访问修饰符定义类的用户访问该常量的方式。
因为常量值对该类型的所有实例是相同的,所以常量被当作 static 字段一样访问。 不使用 static 关键字声明常量。 未包含在定义常量的类中的表达式必须使用类名、一个句点和常量名来访问该常量。 例如:
int birthstones = Calendar.months;
2
在程序中使用常量至少有3个好处:
a.常量用易于理解的清楚的名称替代了含义不明确的数字或字符串,使程序更易于阅读。
b.常量使程序更易于修改。例如,在C#程序中有一个SalesTax常量,该常量的值为6%。如果以后销售税率发生变化,把新值赋给这个常量,就可以修改所有的税款计算结果,而不必查找整个程序,修改税率为0.06的每个项。
C.常量更容易避免程序出现错误。如果要把另一个值赋给程序中的一个常量,而该常量已经有了一个值,编译器就会报告错误。
在C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant)。前者用“const”来定义,后者用“readonly”来定义。
3
有const 的都是常量
const int a=3; 就是常量
常量赋值后不可以修改。 常量 一般用于 经常使用的变量而且是全局的
常量是在编译时设置其值并且永远不能更改其值的字段。
定义浮点型时,用float,不过后面要加个F,
float x = 1.2356f;
Console.Write(x);
字符常量是括在单引号里,例如,'x',且可存储在一个简单的字符类型变量中。一个字符常量可以是一个普通字符(例如 'x')、一个转义序列(例如 '\t')或者一个通用字符(例如 '\u02C0')。
在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符(\n)或制表符 tab(\t)。
二 编程实例
1
using System;
namespace DeclaringConstants
{
class Program
{
static void Main(string[] args)
{
const double pi = 3.14159; // 常量声明
double r;
Console.WriteLine("输入半径: ");
r = Convert.ToDouble(Console.ReadLine());
double areaCircle = pi * r * r;
Console.WriteLine("半径: {0}, 面积: {1}", r, areaCircle);
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
}
2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace changliang
{
public sealed class SomeLibraryType
{
public const Int32 MaxEntriesInList=50 ;
//可以同时声明多个常量
public const Int32 month = 12, weeks = 52, days = 365;
//如果不会造成循环引用,用于初始化一个常量的表达式可以引用另一个常量
const double daysPerWeek = (double)days / weeks;
const double daysPerMonth = (double)days / month;
}
class Program
{
static void Main(string[] args)
{
//这说明了常量的调用方式
Console.WriteLine(SomeLibraryType.MaxEntriesInList);
//不允许修改常量的值
//常量的版本控制问题,只有重新编译,常量值才会获得新值,如果在运行时,如果一个程
//序集要从另外1个程序集获得新值,那么不能使用常量,应该使用字段。
//SomeLibraryType.MaxEntriesInList = 4;
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
}
3
using System;
static class Constants
{
public const double Pi = 3.14159;
public const int SpeedOfLight = 300000; // km per sec.
}
class Program
{
static void Main()
{
double radius = 5.3;
double area = Constants.Pi * (radius * radius);
int secsFromSun = 149476000 / Constants.SpeedOfLight; // in km
Console.Write(area);
Console.Write("\n");
Console.Write(secsFromSun);
Console.Write("\n");
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
4 转义字符常量示例
using System;
namespace EscapeChar
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello\tWorld\n\n");
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
一
1
常量是在编译时已知并在程序的生存期内不发生更改的不可变值。 常量使用 const 修饰符进行声明。 只有 C# 内置类型(System.Object 除外)可以声明为 const。
用户定义的类型(包括类、结构和数组)不能为 const。 请使用 readonly 修饰符创建在运行时初始化一次即不可再更改的类、结构或数组。
C# 不支持 const 方法、属性或事件。
可以使用枚举类型为整数内置类型(例如 int、uint、long 等等)定义命名常量。 参见 enum。
常量必须在声明时初始化。 例如:
class Calendar1
{
public const int months = 12;
}
当编译器遇到 C# 源代码(例如 months)中的常量修饰符时,将直接把文本值替换到它生成的中间语言 (IL) 代码中。 因为在运行时没有与常量关联的变量地址,所以 const 字段不能通过引用传递,并且不能在表达式中作为左值出现。
当引用在其他代码如 DLL 中定义的常量值时应十分谨慎。 如果新版本的 DLL 为常量定义了新的值,程序仍将保留旧的文本值,直到针对新版本重新编译程序。
可以同时声明多个相同类型的常量,例如:
class Calendar2
{
const int months = 12, weeks = 52, days = 365;
}
如果不会造成循环引用,用于初始化一个常量的表达式可以引用另一个常量。 例如:
class Calendar3
{
const int months = 12;
const int weeks = 52;
const int days = 365;
const double daysPerWeek = (double) days / (double) weeks;
const double daysPerMonth = (double) days / (double) months;
}
常量可标记为 public、private、protected、internal 或 protectedinternal。 这些访问修饰符定义类的用户访问该常量的方式。
因为常量值对该类型的所有实例是相同的,所以常量被当作 static 字段一样访问。 不使用 static 关键字声明常量。 未包含在定义常量的类中的表达式必须使用类名、一个句点和常量名来访问该常量。 例如:
int birthstones = Calendar.months;
2
在程序中使用常量至少有3个好处:
a.常量用易于理解的清楚的名称替代了含义不明确的数字或字符串,使程序更易于阅读。
b.常量使程序更易于修改。例如,在C#程序中有一个SalesTax常量,该常量的值为6%。如果以后销售税率发生变化,把新值赋给这个常量,就可以修改所有的税款计算结果,而不必查找整个程序,修改税率为0.06的每个项。
C.常量更容易避免程序出现错误。如果要把另一个值赋给程序中的一个常量,而该常量已经有了一个值,编译器就会报告错误。
在C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant)。前者用“const”来定义,后者用“readonly”来定义。
3
有const 的都是常量
const int a=3; 就是常量
常量赋值后不可以修改。 常量 一般用于 经常使用的变量而且是全局的
常量是在编译时设置其值并且永远不能更改其值的字段。
定义浮点型时,用float,不过后面要加个F,
float x = 1.2356f;
Console.Write(x);
字符常量是括在单引号里,例如,'x',且可存储在一个简单的字符类型变量中。一个字符常量可以是一个普通字符(例如 'x')、一个转义序列(例如 '\t')或者一个通用字符(例如 '\u02C0')。
在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符(\n)或制表符 tab(\t)。
二 编程实例
1
using System;
namespace DeclaringConstants
{
class Program
{
static void Main(string[] args)
{
const double pi = 3.14159; // 常量声明
double r;
Console.WriteLine("输入半径: ");
r = Convert.ToDouble(Console.ReadLine());
double areaCircle = pi * r * r;
Console.WriteLine("半径: {0}, 面积: {1}", r, areaCircle);
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
}
2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace changliang
{
public sealed class SomeLibraryType
{
public const Int32 MaxEntriesInList=50 ;
//可以同时声明多个常量
public const Int32 month = 12, weeks = 52, days = 365;
//如果不会造成循环引用,用于初始化一个常量的表达式可以引用另一个常量
const double daysPerWeek = (double)days / weeks;
const double daysPerMonth = (double)days / month;
}
class Program
{
static void Main(string[] args)
{
//这说明了常量的调用方式
Console.WriteLine(SomeLibraryType.MaxEntriesInList);
//不允许修改常量的值
//常量的版本控制问题,只有重新编译,常量值才会获得新值,如果在运行时,如果一个程
//序集要从另外1个程序集获得新值,那么不能使用常量,应该使用字段。
//SomeLibraryType.MaxEntriesInList = 4;
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
}
3
using System;
static class Constants
{
public const double Pi = 3.14159;
public const int SpeedOfLight = 300000; // km per sec.
}
class Program
{
static void Main()
{
double radius = 5.3;
double area = Constants.Pi * (radius * radius);
int secsFromSun = 149476000 / Constants.SpeedOfLight; // in km
Console.Write(area);
Console.Write("\n");
Console.Write(secsFromSun);
Console.Write("\n");
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
4 转义字符常量示例
using System;
namespace EscapeChar
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello\tWorld\n\n");
Console.Write("按任意键继续 . . . ");
Console.ReadKey(true);
}
}
}
上述代码的运行截图:
0 0
- C#常量和编程实例
- C#接口和编程实例
- c#高级编程之常量
- C# 线程池和编程实例
- 绝对常量、版本常量和实例常量的封装策略
- 实例常量和实例代码块day08
- C#中的常量和字段
- C#常量和静态成员
- C#中的变量和常量
- C#中的变量和常量
- C#中变量和常量
- 编程语言 - 常量和变量
- c#摄像头编程实例
- c#摄像头编程实例
- C#摄像头 编程 实例
- C#摄像头编程实例
- C#摄像头编程实例
- c#摄像头编程实例
- 替换jquery的$
- 欢迎使用CSDN-markdown编辑器
- C++学习路线
- 友盟分享SDK
- yum安装gcc
- C#常量和编程实例
- UICollectionView的使用
- 文章标题
- 2.2_Streaming HTTP responses
- artisan启动php5.4之后内置的服务器
- windowListener和ActionListener的区别
- RTSP服务器搭建
- 使用JavaScript实现后退键
- eclipse与SVN服务端配置使用方法