C#学习记录(1)

1.基础的输入输出语句: 

Console.Write();      输出不换行
Console.WriteLine();  输出并换行
Console.ReadLine();   读取键盘输入的所有字符,返回字符串。按下回车键退出 
Console.Read();       读取键盘输入的第一个字符,返回其对应的ASCII值。按下回车键退出
Console.ReadKey();    等待用户按下任意键并执行退出,(此函数的作用是为了在控制台窗口停留一下,直到用户敲击键盘为止。不然运行时,"Hello World!" 这句话会在控制台窗口一闪而过,没法查看。)

2.注释:
(1)多行注释以 /* 开始,并以字符 */ 终止;
(2)单行注释是用 '//' 符号表示。

3.输出的时候需要预留占位符,不然第二个参数内容不会输出。
例:(1)    Console.WriteLine("A:{0},a:{1}",65,97);
                运行结果:A:65,a:97
        (2)    Console.WriteLine("A:,a:",65,97);
                运行结果:A:,a:

4.数据类型:
(1)值类型:常见的几种类型:bool型、char型、float型、int型
(2)引用型:对象型、动态类型、字符串型
(3)指针类型:type* i、char* i、int* i

        值类型与引用类型就像仓库,仓库里有货架,货架上有编号:A1,A2,A3......, 这些编号就可以看做是引用类型,现在来了一批货,有 “土豆,黄瓜,西红柿”,这些就是值类型,如果你想让 A1=土豆,那么就要把土豆搬到 A1 里面去,这就叫装箱,装箱需要耗费人力和工时(也就是耗费CPU和内存),同理拆箱就要把对应编号的货物搬出来,也是需要耗费人力和工时。

5.字符串转换为数字
方法一:Convert.ToInt32();
方法二:int.Parse()
               实例:string a = "123";          // 将a设置为字符串“123”
                           int x = int.Parse(a);     // 转换
两种方法的差异:
(1)这两个方法的最大不同是它们对 null 值的处理方法: 
        Convert.ToInt32(null) 会返回 0 而不会产生任何异常,但 int.Parse(null) 则会产生异常;
(2)对数据进行四舍五入时候的区别:
        Convert.ToInt32(double value) :若 value 为两个整数中间的数字,则返回二者中的偶数,若不为,遵循“四舍六入”。
        int.Parse("4.5") :直接报错:"输入字符串的格式不正确"。
(3)对被转换类型的区别:
        int.Parse 是转换 String 为 int, Convert.ToInt32 是转换继承自 Object 的对象为 int 的(可以有很多其它类型的数据)。你得到一个 object 对象, 你想把它转换为 int, 用 int.Parse 就不可以, 要用 Convert.ToInt32

6.在 C# 中没有全局变量的概念,所有变量必须由该类的实例进行操作。
(1)静态常量(编译时常量)是使用 const 关键字来定义的 :

const double a=3.14;// 正确声明常量的方法 
const int b; // 错误,没有初始化

(2)动态常量(运行时常量)是使用 readonly 关键字来定义的 :

class Program
{
    readonly int a=1;  // 声明时初始化
    readonly int b;    // 构造函数中初始化
    Program()
    {
        b=2;
    }
    static void Main()
    {
    }
}

(3)在下面两种情况下: 

  •  a、取值永久不变(比如圆周率、一天包含的小时数、地球的半径等)。
  •  b、对程序性能要求非常苛刻。

        可以使用 const 常量,除此之外的其他情况都应该优先采用 readonly 常量。

7.变量命名
(1)带有private私有访问修饰符的常量要以骆驼命名法命名,即以下划线开头,第一个单词的首字母小写,余下单词首字母大写。例:private const string _bookName = "变量命名";
(2)带有public公共修饰符、protected 受保护修饰符等的常量要以帕斯卡命名法命名,即各个单词首字母都要大写。public const int BookPrice = 10;

8.运算
(1) 赋值与增值:

static void Main(string[] args)
{
    int a = 1;
    int b;
    int c;

    // a++ 先赋值再进行自增运算
    b = a++;
    // ++a 先进行自增运算再赋值
    c = ++a;
    Console.WriteLine("a = {0}", a); //结果:a = 3
    Console.WriteLine("b = {0}", b); //结果:b = 1
    Console.WriteLine("c = {0}", c); //结果:c = 3
    Console.ReadLine();
}

(2)一些重要的运算符:

运算符描述实例
&返回变量的地址。&a; 将得到变量的实际地址。
? :条件表达式如果条件为真 ? 则为 X : 否则为 Y
as强制转换,即使转换失败也不会抛出异常。Object obj = new StringReader("Hello");
StringReader r = obj as StringReader;

附:三元(运算符)表达式?:x?y:z 表示如果表达式 x 为 true,则返回 y;如果 x 为 false,则返回 z

9.泛型
        泛型允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。具体可参考C#泛型-菜鸟教程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值