C#基础知识回顾

C#基础知识回顾

      

  相同数据类型不同的定义变量方式。

            int a = 5;
            Int32 b = 6;

            long c = 4;
            Int64 d = 4;

            double e = 3.14;
            Double f = 3.14;

            float g = 3.14f;
            Single h = 3.14f;

            bool aa = true;
            Boolean bb = true;

            string s = "Hello";
            String ss = "Hello";

 

数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体

一、数据类型

(一)内建类型

整型(int short long byte uint ushort ulong sbyte),浮点(double float decimal),布尔(bool),字符(char)

对于整型和浮点型都有个ToString("格式化字符串"):

    #——任意一个数字。有的话就显示,没有就不显示。

    0——必须有一个数字,没有的话就补零。

    .——小数点

    ,——千位分隔。

(二)常用的复合类型

Math DateTime string

Math:

    Math.Ceiling(double ):大于当前小数的最小整数。

    Math.Floor(double):小于当前小数的最大整数。

    Math.Round(double):四舍五入

DateTime:

    Year,Month,Day,Hour,Minute,Second,MilliSecond,DayOfWeek,DayOfYear

    AddYears(n),AddMonths(),AddDays().........

    ToString("格式化字符串"):格式显示。

        yyyy,yy——年份。MM,M——月份。dd,d——天。hh,h——时。mm,m——分。ss,s——秒。ms——毫秒

(三)自定义类型

struct

二、变量与常量:

(一)变量就是装数据容器。——U盘

定义:

    数据类型 变量名[ = 值],变量名[ = 值],....;

        int a,b;    int a = 5,b;

    变量的命名规则:

        1.变量名只能由字母、数字、下划线组成

        2.只能字母,下划线开头

        3.不能与关键词重复。

赋值:

    变量名=值;——注意:变量类型与等号右边的值类型相一致。不一致就需要进行类型转换。

    类型转换:

        1.自动转换:一般来说自动转换,只要不存在丢数据的可能性,计算就会自动转化。例如:double a = 3+5.0;

        2.强制转换:只要存在丢数据的可能性,计算机就不给自动转化,需要手动强制转化。

            Convert.Toxxx();    Convert.ToInt32();

            double a = 3.14;

            int b = (int)a;

取值:直接写变量名。

(二)常量:常量也是装数据的容器,但在运算过程中常量不能放在单等的左边。——一次性光盘

分类:字面常量,符号常量。 
定义:const int PI = 3.14;

    注意:常量在定义的时候必须要赋值。

取值:直接使用常量取值。

三、运算符:

算术,关系,逻辑,其它

(一)算术——7

+ - * / % ++ --

整数除整数还是整数。

(二)关系——6

== != > >= < <=

(三)逻辑——3

&&  ||  !

(四)其它

1.复合运算符:+= -= *= /= %=

2.赋值: =           
3.条件运算符:表达式1?表达式2:表达式3

四、语句:顺序、分支、循环

(一)分支——if

if(表达式)

{

}

if(表达式)

{

}

else

{

}

if(表达式)

{

}

else if(表达式)

{

}

...

else

{

}

if(表达式)

{

    if(表达式)

    {

    }

    else

    {

    }

}

else

{

    ...

}

例子:

1.判断闰年,平年

2.一元二次方程根的情况

3.男女体重与身高

4.判断日期是否正确。

(二)循环

for(初始条件;循环条件;变量改变)

{

    循环体

}

循环的四要素:

循环的嵌套:打印星号。

两类问题:迭代法,穷举法。

迭代法: 按照某种规律通过循环迭代求解。

求100以内数的和,求阶乘。

1.5个小孩子求年龄

2.棋盘上放粮食

3.折纸与珠峰的高度。

4.落球问题。

5.猴子吃桃子

6.兔子生兔子。

穷举法:把所有的情况都走一遍,根据条件筛选。

求100以内与7相关的数。

1.买东西。

2.百鸡百钱,百马百石。

3.侦察兵

4.求等式。

五、数组:

思想:解决大量同类数据存储和操作的问题。

特点:连续,同一类数据。

分类:一维数组,二维数组,多维数组。

一维数组:

定义:

    数据类型[] 数组名 = new 数据类型[数组的长度] [{初始化}];

赋值:

    数组名[下标] = 值;

    可以与循环结合起来。

取值:

    数组名[下标];

    可以与循环结合起来。

例子:

1.球员打分

2.选班长

3.36选7

3.青歌赛。

二维数组:

定义:

    数据类型[,] 数组名 = new 数组类型[行数,列数] [{初始化}];

赋值:

    数组名[行下标,列下标] = 值;

取值:

    数组名[行下标,列下标];

例子:

1.学生成绩。

2.推箱子。

两个应用:二分法查找,冒泡排序。

二分法查找思想:前提是数组有序,每次找中间的值对比,否满足条件就扔一半。

使用最大下标max、最小下标min,中间值下标mid,控制查找的范围。 mid = (max+min)/2;   max = mid+1; min = mid-1;

如果一直查到min>max就结束了,说明没有找到。

冒泡排序的思想:相邻两个数进行依次对比,互换。

两层循环,外层循环趟数,内层循环每趟的次数。

趟数:n-1

次数:n-i

for(int i=1;i<=n-1;i++)

{

    for(int j=1;j<=n-i;j++)

    {

        if(a[j] > a[j-1])

        {

            互换。

        }

    }

}

六、函数:

什么是函数:能够完成某个独立功能模块就可称之为函数。

为什么要用函数:结构清晰,分工开发,代码重用。

四要素:函数名,形参,返回类型,函数体。

定义语法:

返回类型 函数名(形参列表)

{

    函数体

}

调用:

函数名(实参列表);

数据类型 变量名 = 函数名(实参列表);

函数的传值与传址的问题。

1.内建类型,日期时间都是默认传值。    ——ref

2.数组,字符串默认都是传址。

函数的返回值。——return 值或变量;要保持return后面的类型与函数的返回类型要一致。

递归。自己调自己。

语法思想:

返回类型 函数名(参数)

{

    1.结束递归的判断。

    2.递归运算:函数名(参数);

}

七、结构体:

为什么要用结构体?自己定义的复合类型,更好地模拟生活中的各种对象。

定义

struct 结构体名

{

    public 类型 子变量名;

    public 类型 子变量名;

    ....

}

使用:

结构体名 结构体变量 = new 结构体名();

结构体变量.子变量 = 值;

结构体变量.子变量;

结构体数组:

结构体类型[] 数组名 = new 结构体类型[长度];

数组名[下标].子变量

如何使用循环来操作结构体数组。

例子:学生成绩统计。对战的小游戏。

时间: 2024-10-07 05:56:18

C#基础知识回顾的相关文章

java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)

 *java多线程--等待唤醒机制:经典的体现"生产者和消费者模型 *对于此模型,应该明确以下几点: *1.生产者仅仅在仓库未满的时候生产,仓库满了则停止生产. *2.消费者仅仅在有产品的时候才能消费,仓空则等待. *3.当消费者发现仓储没有产品可消费的时候,会唤醒等待生产者生产. *4.生产者在生产出可以消费的产品的时候,应该通知等待的消费者去消费. 下面先介绍个简单的生产者消费者例子:本例只适用于两个线程,一个线程生产,一个线程负责消费. 生产一个资源,就得消费一个资源. 代码如下: pub

java基础知识回顾之java Thread类学习(七)--java多线程通信等待唤醒机制(wait和notify,notifyAll)

1.wait和notify,notifyAll: wait和notify,notifyAll是Object类方法,因为等待和唤醒必须是同一个锁,不可以对不同锁中的线程进行唤醒,而锁可以是任意对象,所以可以被任意对象调用的方法,定义在Object基类中. wait()方法:对此对象调用wait方法导致本线程放弃对象锁,让线程处于冻结状态,进入等待线程的线程池当中.wait是指已经进入同步锁的线程,让自己暂时让出同步锁,以便使其他正在等待此锁的线程可以进入同步锁并运行,只有其它线程调用notify方

java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁

1.验证同步函数使用的锁----普通方法使用的锁 思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证.创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定.假设我们事先不知道同步函数用的是什么锁:如果在同步代码块中指定的某个锁(测试)和同步函数用的锁相同,就不会出现线程安全问题,如果锁不相同,就会发生线程安全问题. 看下面的代码:t1线程用的同步锁是obj,t2线程在操作同步函数的资源,假设不

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc

java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

管道流(线程通信流):管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入流之上.如图所示: 1.管道输入流应该连接到管道输出流 ,输入流和输出流可以直接连接       2.使用多线程操作,结合线程进行操作.通常由某个线程从管道输入流中(PipedInputStream)对象读取.          并由其他线程将其写入到相应的端到输出流中.不能使用单线程

java基础知识回顾之java Thread类学习(五)--java多线程安全问题(锁)同步的前提

这里举个例子讲解,同步synchronized在什么地方加,以及同步的前提: * 1.必须要有两个以上的线程,才需要同步. * 2.必须是多个线程使用同一个锁. * 3.必须保证同步中只能有一个线程在运行,锁加在哪一块代码 那么我们要思考的地方有:1.知道我们写的哪些是多线程代码 2.明确共享数据 3.明确多线程运行的代码中哪些语句是操作共享数据的.. 4.要确保使用同一个锁. 下面的代码:需求:两个存户分别往银行存钱,每次村100块,分三次存完. class bank{ private int

java基础知识回顾之---java String final类普通方法

辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      *      * 1,获取:     * 1.1 获取字符串中字符的个数(长度).     *         int length();     * 1.2 取字符串中的某一个字符,其中的参数index指的是字符串中序数.字符串的序数从0开始到length()-1 .     *       

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

java基础知识回顾之---java String final类之intern方法

public class StringObjectDemo { /** * @param args */ public static void main(String[] args) { String hello = "Hello", lo = "lo"; System.out.print((hello == "Hello") + " ");//true System.out.print((Other.hello == hel