C#笔记

C#入门

前言

Xamarin插件是基于C#开发的,虽然支持F#,但选择C#,显然是更好的选择,这不是在说F#不好,C#用的比较广泛。这一天我打算把C#的基本语法过一遍,不进行很深的探索。

Hello World

来看看最简单的一个C#程序吧。

using System;
namespace HelloWorldApplication
{
    class HelloWorld{
        static void Main(string[] args){
            Console.WriteLine("Hello Wrold!");
            Conslole.ReadKey();
        }
    }
}

代码分析

第一行代码using System类似各个编程语言的导入包,就是第三方依赖包都需要这个导包语句的。

第二行namespace HelloWorldApplication,类似于JAVA中的包名,通俗的说,有这个定义,别人才好调用你这个程序中的代码,也就是为了符合他们导入我们写的程序而专门定制的,如果他们要导入我们的程序就要进行导包操作,using HelloWroldApplication,这样他们就可以调用我们写的方法了。

第三行class HelloWorld,声明一个类,这里也给大家透露了一个消息,C#也是面向对象的语言哦。没有接触过面向对象的朋友,可以去学习一下面向对象。

第四行static void Main(string[] args)程序的入口,执行程序的时候,就从这里开始的。

第五行代码我就不用说了吧,从控制台打印,并且换行

第六行代码是等待键盘输入,如果没有这行代码,那么你运行后的程序会一闪而过,这句话只针对我们的第一个程序。

C#的重要功能

学C#,学的是什么?当然是它的独特之处,下面就把C#的一些特色亮出来:

  • 自动垃圾回收
  • 组件版本
  • 属性和事件
  • 索引器
  • 条件编译
  • 简单的多线程
  • LINQ和Lambda表达式
  • 集成Windows

这里只是c#的一部分,还有跟多的特色,在以后你会慢慢发掘的,这毕竟是个入门笔记而已。

注意

  • C#是大小敏感的
  • 所有程序和表达式必须以分号(;)结尾
  • 程序的执行从Main方法开始
  • 与Java不同的是,文件名可以不同于类的名称

在任何C#程序中,第一条语句都是using System,using关键字用于在程序中包含命名空。一个程序可以包含多个using语句

注释

多行注释
多行注释是以/开始,然后以/结束。

/*
    我是多行注释
*/

单行注释

单行注释是以//开始,但只能一行

//我是单行注释
命名规范

在C#中,你要是用来定义类、变量、函数或任何用户定义的项目,你就必须遵守这个规范,不然就给你报错,气不气?

  • 首字符必须以下划线、字母、@开头,不能以数字开头
  • 不能包含空格或符号
  • 不能是C#的关键字
  • 区分大小写
  • 不能和C#的类库名称相同

使用sizeof(基础类型)可以看它的存储尺寸

自动装箱和自动拆箱

这看起来好像很高级,其实并不然,这是个理论知识,都不需要操作,在C#里面已经自动帮你完成。

当一个值类型(基础类型)转换为对象类型时,则被成为装箱;另一方面,当一个对象类型装换为值类型时,则被称为拆箱

动态类型

这个就厉害了,可以动态的装换任何类型。动态类型是在运行时发生的,其他类型都是在编译时发生的。

关键词dynamic

声明动态类型的语法:

dynamic <variable_name> = value;

列如:

dynamic d=20;
字符串(String)类型

其实字符串没什么好说的,但是在C#中,有个@可以声明字符串,并且使用@字符串可以任意换行,换行符缩进空格都计算在字符串长度之内。

string str=@"<!DOCTYPE html><!--[if IE 6]><html class="ie ie6 "><script type="text/javascript">window.location.href='/ie6.html'+window.location.search;</script><![endif]--><!--[if IE 8]><html class="ie ie8 "><![endif]--><!--[if IE 9]><html class="ie ie9 "><![endif]--><!--[if gt IE 9]><html><![endif]--><html class=""><head><meta name="referrer" content="unsafe-url" /><meta name="referrer" content="always" /><meta name="_dhsg" content="ij7t5mdfksda8fksdafka19b04cef36a" /><meta name="_dhsg2" content="290D43EF-9288-4d8d-8D05-D79D8B79CC67" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge">";

声明指针类型

type* identifie;

例如:

char* cpter;
int* iptr;

类型转换

C#提供了基础类型转换的方法:

  • ToBoolean 如果可能的话,把类型转换为布尔型。
  • ToByte 把类型转换为字节类型。
  • ToString 把类型转换为字符串类型。

还有很多,只要是基础类型,都可以To一下。

变量定义

这些定义变量的语句,一般是通用的。JAVAPython中这样定义也是合法的。

int i, j, k;
char c, ch;
float f, salary;
double d;

常量

常量一旦定义,就不可更改,所有的编程语言都是如此。如果可以更换,那就不叫做常量了。

整数常量可以是十进制、八进制或十六进制的常量。

  • 前缀0x或0X,代表十六机制的常量
  • 前缀为0,代表8进制
  • 没有前缀为十进制

以下是各种类型的整数常量的实例:

85   /* 十进制 */
0213   /* 八进制 */
0x4b   /* 十六进制 */
30      /* int */
30u     /* 无符号 int */
30l     /* long */
30ul   /* 无符号 long */

有符号和无符号的区别:

有符合可以代表整数,无符号却不可以。

定义常量

常量是用const关键词来定义的,定义一个常量的语法如下:

const <data_type><constant_name> = value;

例如:

   const double pi = 3.14159; // 常量声明

C#运算符

其实C#运算符和其他的编程语言没什么不同。这里就简单的过一遍

算数运算符

  • +
  • -
  • *
  • /
  • %
  • ++
  •  –

关系运算符

  • ==
  • !=
  • >
  • <
  • >=
  • <=

逻辑运算符

  • &&
  • ||
  • !

还有很多,这些东西实在太基础啦,我也不想继续浪费长度,但是在这里我得说下++aa++的区别。(a指整数变量)

  • ++a是指先自增,然后在运算赋值。举个例子吧!

例子:

int c=0;
int a=0;
c=++a;

输出:

a=1;
c=1;

这里是先给a自增,然后在把a赋值给c。

  • a++是指先赋值,后自增。同样来个例子。

例子:

int c=0;
int a=0;
c=a++;

输出:

a=1;
c=0;

为什么和上面的结果不一样?因为a++是先进行赋值,然后在相加。

吐槽:

喉咙发炎,自己买了点药,还是不见效,然后早早的去医院,人太多了,没办法,这天的文章有点少,但是每一篇文章我都是一个个字敲出来的。我的文章并不是针对0基础的,如果你看不懂,建议先入门。我也不会写零基础的教程,至少现在不会。原因是自己基础都还牢固,不能教坏别人不是?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值