【c#】学习笔记之c#基础知识(一)

一、c#简介

c#成为一种广泛应用的准也语言的原因:

  • 现代的、通用的编程语言
  • 面向udixiang
  • 面向组件
  • 容易学习
  • 结构化语言
  • 它产生高效率的程序
  • 它可以在多种计算机平台上演绎
  • .Net 框架的一部分

c#的一些重要功能:

  • 布尔条件
  • 自动垃圾回收
  • 标准库
  • 组件版本
  • 属性和事件
  • 委托和事件管理
  • 易于使用的泛型
  • 索引器
  • 条件变异
  • 简单的多线程
  • LINQ和Lambda表达式
  • 集成Windows

二、程序结构

一个 c# 程序主要包括以下部分:

  1. 命名空间声明
  2. 一个 class
  3. Class 方法
  4. Class 属性
  5. 一个 Main 方法
  6. 语句 & 表达式
  7. 注释

一个简单的实例如下:

using System;//命名空间

//namespace里包含了一系列的类
namespace Test1_1 
{
    //类包含了程序使用的数据和方法声明
    class HelloWorld 
    {
    //Main是c# 程序的入口点
        static void Main(string[] args) 
        {
            Console.WriteLine("Hello World");
            //针对VS.NET用户,防止屏幕快速运行并关闭
            Console.ReadKey(); 
        }
    }
}

注意:
c# 是大小写敏感的
所有的语句和表达式必须以分号结尾(与python不同)
程序的执行从Main方法开始
文件名可以不同于类的名称(与java不同)

三、c# 基本语法

以Rectangle为例:

using System;

namespace RectangleApplication
{
    class Rectangle
    {
        // 成员变量
        double length;
        double width;
        public void Acceptdetails()
        {
            length = 4.5;
            width = 3.5;
        }
        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Length:{0}", length);
            Console.WriteLine("width:{0}", width);
            Console.WriteLine("Area:{0}", GetArea());
        }
    }


    class ExecuteRectangle
    {
        static void Main(String[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

输出结果为:

Length:4.5
Width:3.5
Area:15.75

using关键词
用于在程序中包含命名空间,一个程序可以包含多个 using语句。
在c# 程序中的第一条语句都是“using System”。

class关键词
用于声明一个类。

c# 中的注释
单行注释用“//”表示。例如:

/* This program demonstrates
The basic syntax of c# programming
Language */

多行注释以/*开始,并以/*终止。例如:

}//end class Rectangle

成员变量
变量是类的属性或数据成员,用于存储数据。如类Rectangle有两个成员变量:length和width。

成员函数
函数是一系列执行指定任务的语句。类的成员函数式在类内声明的。如类Rectangle包含了三个成员函数:AccepDetails()、GetArea()、Display()。

标识符
标识符是用来识别类、变量、函数或其他用户定义的项目。在c# 中,类的命名必须遵循如下基本规则:

  1. 必须以字母、下划线或@开头,后面可以跟一系列的字母、数字、下划线、@
  2. 第一个字符不能是数字
  3. 必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \
  4. 不能是c# 关键词,除非它们有一个@前缀。例如,@if 是有效的标识符,但if不是
  5. 必须区分大小写
  6. 不能与c# 的类库名相同

c# 关键字
关键词是c# 编译器预定义的保留字。这些关键字不能用作标识符,如果想使用这些关键字作为标识符,可以再关键词前面加上@字符作为前缀。

保留关键字:

abstratasbaseboolbreakbytecasecatchchar
checkedclassconstcontinuedecimaldefaultdelegatedodouble
elseenumeventexplicitextermfalsefinallyfixedfloat
forforeachgotoifimplicitinintinterfaceinternal
islocklongnamespacenewnullobjectoperatorout
overrideparamsprivateprotectedpublicreadonlyrefreturnsbyte
sealedshortsizeofstackallocstaticstringstructsuitchthis
throwtruetrrytypeofuintulonguncheckedunsafeushort
usingvirtualvoidwhile.

上下文关键字:

addaliasascendingdescendingdynamicfromgetglobalgroup
intojoinletorderbypartialremoveselectset

四、数据类型

在c# 中,变量分为以下几种类型:

  • 值类型
  • 应用类型
  • 指针类型

值类型
值类型变量可以直接分配给一个值。它们是从类System.ValueType中派生的。
值类型直接包含数据。比如int、char、float,它们分别存储数字、字符、浮点数。当声明一个int类型时,系统分配内存来存储值。
如需得到某个类型的具体尺寸,可以使用sizeof() 方法,产生以字节为单位的存储尺寸。

using System;

namespace DataTypeApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Size of int:{0}", sizeof(int));
            Console.ReadLine();
        }
    }
}

输出结果为:

Size of int4

引用类型
引用类型不包含存储在变量的实际数据,但它们包含对变量的引用。

1.对象(Object)类型
是c# 通用类型中所有数据类型的终极基类,对象类型可以被分配任何其他类型的值,分配值之前,需先进行类型转换。
分箱:一个值类型转换为对象类型。
拆箱:一个对象类型转换为值类型。
如:

object obj;
obj = 100//装箱

2.动态(Dynamic)类型
可以存储任何类型的值在动态数据类型中,这些变量的类型检查是在运行时发生的。
声明动态类型的语法:

dynamic <varible_name> = value;

例如:

dynamic d = 20;

动态类型与对象类型相似,但是对象类型的变量检查时在编译时发生的,而动态类型变量的检查时在运行时发生的。

3.字符串(String)类型
允许给变量分配任何字符串值,它是从对象类型派生的。字符串类型的值可以通过两种形式进行分配:引号和@引号
例如:

String str = "runoob.com";
@"runoob.com"   //一个引号字符串

string str = @"c:\Windows";
string str = "C:\\Windows";//这两行代码是等价的

//@字符串可以任意换行,换行符及缩进空格都计算在长度之内。
string str = @"<script type=""text/javascript"">
    <!--
    -->
</script>";

指针类型
指针类型变量存储另一种类型的内存地址。
声明指针类型的语法:

type* identifier;

例如:

char* cptr;
int* iptr;

五、c# 类型转换

隐式类型转换:
c# 默认的以安全方式进行的转换,不会导致数据丢失。例如:从小的证书类型转换为大的整数类型,从派生类转换为基类。

显式类型转换:
即强制类型转换,显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
例如:

using System;

namespace TypeConversionApplication
{
    class ExplicitConversion
    {
        static void Main(string[] args)
        {
            double d = 5673.74;
            int i;

            //强制转换double 为 int
            i = (int)d;
            Console.WriteLine(i);
            Console.ReadKey();
        }
    }
}

输出结果为:

5673

c# 类型转换方法

序号方法&描述
1ToBoolean :把类型转换为布尔型
2ToByte:把类型转换为字节类型
3ToChar:把类型转换为单个Unicode字符类型
4ToDataTime:把类型(整数或字符串)转换为 日期-时间 结构
5ToDecimal:把浮点型或整数类型转换为十进制类型
6ToDouble:把类型转换为双精度类型
7ToInt16:把类型转换为16为整数类型
8ToInt32:把类型转换为32为整数类型
9ToInt64:把类型转换为64为整数类型
10ToSbyte:把类型转换为有符号字节类型
11ToSingle:把类型转换为小浮点数类型
12ToString:把类型转换为字符串类型
13ToType:把类型转换为制订类型
14ToUInt16:把类型转换为16位无符号整数类型
15ToUInt32:把类型转换为32位无符号整数类型
16ToUInt64:把类型转换为64位无符号整数类型

六、c# 变量

在c# 中,每个变量都有一个特定的类型,类型决定变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。

类型举例
整数类型sbyte、byte、short、ushort、int、uint、long、unlong和char
浮点型float和double
十进制类型decimal
布尔类型true或false值,指定的值
空类型可为空值得数据类型

c#中的变量定义

语法:

<data_type> <variable_list>;
//其中,data_type是有效的c#数据类型;variable_list可以由一个活多个用逗号隔开的标识符名称组组成。

例如:

int i,j,k;
char c,ch;

//也可以再变量定义时进行初始化:
int i = 100;

c# 中的变量初始化
一般形式为:
variable_name = value;

变量可以再声明时被初始化:
<data_type> <variable_name> = value;

一些实例:

int d = 3, f = 5;
byte z =22;

接受来自用户的值
System 命名空间中的类Console提供了一个函数ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。
例如:

int num;
num = Convert.ToInt32(Console.ReadLine());
//函数Convert.ToInt32()把用户输入的数据转换为int数据类型,因为Console.ReadLine()值接受字符串格式的数据。

c# 中的Lvalues和Rvalues
lvalues:
lvalue表达式可以出现在赋值语句的左边或右边。(变量)
rvalue:
rvalue表达式只可以出现在赋值语句的右边。(数值)

教程来自“http://www.runoob.com/”

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值