C#基础视频教程2 常见数据类型和属性方法
记住只要掌握常用的几种数据类型即可(比如Single就很少用了,要用浮点数一般就用Double,现在的计算机内存已经大到不需要你去考虑优化什么了)
比如仅仅是整形就有9种,实际上我们只需要知道int和char类型即可(很少用到byte,long,剩下的基本用不到)
- C# 支持 9 种整型:sbyte、byte、short、ushort、int、uint、long、ulong 和 char。整型具有以下所列的大小和取值范围:
- sbyte 类型表示有符号 8 位整数,其值介于 -128 和 127 之间。
- byte 类型表示无符号 8 位整数,其值介于 0 和 255 之间。
- short 类型表示有符号 16 位整数,其值介于 -32768 和 32767 之间。
- ushort 类型表示无符号 16 位整数,其值介于 0 和 65535 之间。
- int 类型表示有符号 32 位整数,其值介于 -2147483648 和 2147483647 之间。
- uint 类型表示无符号 32 位整数,其值介于 0 和 4294967295 之间。
- long 类型表示有符号 64 位整数,其值介于 -9223372036854775808 和 9223372036854775807 之间。
- ulong 类型表示无符号 64 位整数,其值介于 0 和 18446744073709551615 之间。
- char 类型表示无符号 16 位整数,其值介于 0 和 65535 之间。char 类型的可能值集与 Unicode 字符集相对应。虽然 char 的表示形式与 ushort 相同,但是可以对一种类型进行的所有计算并非都可以对另一种类型执行。
不要去死记硬背每个数据的表示范围,没有意义(想知道随时可以知道,一般不会超过变量范围)
所有类型都可以使用.ToString转成字符串来输出(当然如果本身就是字符串就不需要转成字符串了),可以在双引号里面加0.00表示保留两位小数,当然0.0就是表示保留一位小数
所有类型都可以使用Convert.To来转到你要的格式,而且要用好C#的自动提示(这一点就是C#的高效所在,当你想要转格式的时候,只要记住Convert.To,而且To的目标也只要记住非常有限的几种)
字符串的处理是重要的,常见的操作比如查找和替换,分割到数组都是需要掌握的(目前只要了解简单用法,我们后面会结合具体实例让大家用自定义的方法学会)
强制转换就是在变量前面加一个括号,括号里面放强制转换成的类型(比如把double类型强制转换成int就丢失了小数点后面的东西)
数组是非常重要的,至少要掌握一维数组和二维数组的定义和使用(不要学花哨的定义方法,比如定义的时候给数组元素赋初始值之类的,没有实用价值),对于比较多的元素的输出,可以放入剪贴板(除了MessageBox)
可变数组List,一般不常用(例如在导入一堆用户数据的时候,我们并不知道数据的具体数量,这个时候要用可变数组)
指针Point,一般不常用(例如在做一些专业的图像处理的时候,使用指针访问每个像素的RGB值能显著提高效率,新手不需要掌握)。
结构体Struct,一般不常用(例如在自定义封装类的时候会用到,你可以定义一个学生的结构体,包括了学生的姓名,性别,年龄,各科成绩,使用结构体将让对象的属性更加清晰)
类Class,非常重要的概念(我们在后面的课程中会结合具体实例来教学,能够真正区分是否面向对象的,是否代码可扩展的就是看编程人员能否自己组织类,掌握类,虽然做简单任务的时候写成类还麻烦,但是越往后对比越显著,使用面向对象的类的写法会越来越轻松,而使用以往VB6.0,C语言写法会越来越吃力),在这个例子中,我们只是简单区分了类和结构体在定义和赋值上的区别(是否需要new,是否会一改全改),实际上并不建议直接让结构体或者类的A=B,更加详细的说明会在后面列举。
定时器(最简单的多线程方法,拖一个控件改改参数就完事了),这里我们还顺带介绍了全局变量的概念(定义在某个方法外面的是全局变量,定义在某个方法里面的是局部变量,全局变量可以随时访问)
线程(自己写Thread的方法,目前我们只介绍最简单的一种方法,其实线程还有很多内容需要掌握,比如带参数的新建线程,多个子线程的传递值问题,线程的暂停,恢复,终止等等,但是还是跟前面强调的一样,真正要掌握都是要结合具体实例,大部分简单程序没必要去掌握这些)
最后,要学会使用try_catch语句和if(false)来提高排除错误的效率,有一些错误并不会给出提示,需要不断的提高编程水平和经验(把没问题的都注释掉不运行,只运行可能有问题的部分,或者把中间结果输出出来,到记事本上去仔细分析跟预期的是否一致)
总结:按照常规,还有很多比如枚举类型,比如委托和事件,接口,抽象,虚函数等等可以介绍,然而那些都不是必须的(也就是说你可能用了五年也用不到接口interface,除非你在一个非常专业团队,每个人的分工任务明确,比如做一个牛逼的游戏。但是实际上工控行业大部分都是一个人包揽全部活,根本谈不上封装的多么好的类,对象。你的重点往往在通信,算法,效率上,而不是在程序的结构上),而且个人认为把这些弄进来反而影响注意力。初学者应该用最快的时间掌握那些最常用的东西(本案例所列举的基本都是以后会经常用到的)。讲解概念是枯燥无味的,也不利于提高学习兴趣。从下一节开始会结合小案例把几个知识点串起来,如果你能自己动手把三五个小案例都搞定,就说明你已经入门了(本节演示的东西都要自己手敲出来,看懂不代表你真的会)。
更多教学视频和资料下载,欢迎关注以下信息:
我的优酷空间:
http://i.youku.com/acetaohai123
我的在线论坛:
http://csrobot.gz01.bdysite.com/
问题交流:
QQ:910358960
C#基础视频教程2 常见数据类型和属性方法的更多相关文章
- Java基础语法04面向对象上-类-属性-方法-可变参数-重载-递归-对象数组
类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考 ...
- NDK学习笔记-JNI数据类型和属性方法的访问
JNI实现了C/C++与Java的相互访问,那么这篇文章就从C/C++访问Java开始说起 native函数说明 每个native函数,都至少有两个参数(JNIEnv *和jclass或jobject ...
- C#基础视频教程3.3 常见控件类型和使用方法
前面介绍了微软的控件,也介绍了几个第三方控件,那么这些控件是如何做出来的?即便我们自己不做控件,也至少要理解控件的原理. 如果要创建一个自定义控件,首先新建一个C#下面的Windows窗体控件库 ...
- WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭
在我们开发WCF项目的时候,常常会碰到一些莫名其妙的错误,有时候如果根据它的错误提示信息,一般很难定位到具体的问题所在,而由于WCF服务的特殊性,调试起来也不是那么方便,因此往往会花费不少时间来进行跟 ...
- JavaScript基础视频教程总结(081-090章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript基础视频教程总结(071-080章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript基础视频教程总结(051-060章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript基础视频教程总结(001-010章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript基础视频教程总结(041-050章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
随机推荐
- Unity 2D游戏开发教程之2D游戏的运行效果
Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑问 ...
- LruCache 原理
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha LruCache 使用一个 链表式的哈希图LinkedHashMap 简单的实现 内存的 ...
- Android UI设计规范之知识点
界面尺寸 android的尺寸众多,建议使用分辨率为720×1280的尺寸设计.这个尺寸720×1280中显示完美,在1080×1920中看起来也比较清晰;切图后的图片文件大小也适中,应用的内存消耗也 ...
- hdu 3507 斜率优化
我的第一道斜率优化. 就这道题而言,写出原始的方程: dp[i] = min{ dp[j] + (sum[i]-sum[j])2 + M | j in [0,i) } O(n^2)的复杂度肯定超时, ...
- Java反射机制涉及的类常见方法使用总结
import java.lang.reflect.Constructor; import java.lang.reflect.*; /*Class:代表一个字节码文件的对象,每当有类被加载进内存,JV ...
- Sencha Touch开发环境搭建及ext插件Spket安装
第一步:JAVA SDK(JDK)的安装 以去问百度下载JDK,也可以到官方下载JDK. 下载地址: http://www.oracle.com/technetwork/java/javase/dow ...
- js中常用日期时间转换
常用日期时间处理插件:1. timeago.js处理几分钟之前 2. day.js 3. moment.js 注意: 1. 此处的标准时间格式为 2018-03-23 13:35:47 ...
- 无线遥控器方案 Si4010/Si4012
Si4010包含一个嵌入式兼容8051微控制器(MCU),内具4 kB的RAM.8 kB的一次性编程(OTP)非易失性内存.一个128位EEPROM以及用于函数库(library)功能的12 kB R ...
- CMoReader
#ifndef __E3GLOGLOADBYFILE_H__ #define __E3GLOGLOADBYFILE_H__ #include "PubCommon\MemoryManager ...
- MEF 导入(Import)和导出(Export)
前言: MEF不同于其他IOC容器(如:Castle)很重要的原因在于它使用了特性化编程模型(涉及到两个概念:“特性”和“编程模型”). 特性(Attribute):举例来说就是我们在开发过程中在类上 ...