----------------------以下为我在黑马程序员学习期间整理的笔记和心得,期待与您交流! ----------------------


01、基础知识

2013-08-19 14:45:25
一:.net和C#的区别
1..NET/dotnet:一般指.Net Framework框架,一种平台,一种技术
2.C#(sharp):一种编程语言,可以开发基于.net平台的应用
3.(*)JAVA即是一种技术也是一种语言

二:.net可以干什么
1.在.net这个平台上开 发桌面应用程序 叫做winform应用程序开发
2.Internet应用程序 ASP.net
3.手机开发:wp7
4.C/S 客户机[winform](Client)/服务器(Server)
5.B/S 浏览器/服务器模式 [通过浏览器访问]

三:IDE介绍
1.IDE(Integrated Development,集成开发环境)
2.Visual Studio 简介(VBS):
一套完整的开发工具集
用于开发桌面的应用程序、ASP.NET WEB一用程序、XML、Web Service、移动应用程序
为快速开发提供强大支持

四:MSDN介绍
1.MSDN 的全称是 Microsoft Developer Network。这是微软公司面向软件开发者的一种信息服务。MSDN 实际上是一个以 Visual Studio 和 Windows 平台为核心整合的开发虚拟社区,包括技术文档、在线电子教程、网络虚拟实验室、微软产品下载(几乎全部的操作系统、服务器程序、应用程序和开发程序的正式版和测试版,还包括各种驱动程序开发包和软件开发包)、Blog、BBS、MSDN WebCast、与 CMP 合作的 MSDN 杂志等等一系列服务。

五:Visual studio应用
1.选择Visual C#语言
2.选择应用程序控制台
3.名称
4.位置(Visual Studio 2008)
5.解决方案(Visual Studio 2008)


02、学习两句话

一:第一天
1.在.net这个平台上开始桌面应用程序,叫做Winform应用程序开发。
2.解决方案中可以包含多个项目,项目可以包含多个文件,文件中是我们写的程序。
——1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
-引用命名空间

——2
 namespace 我
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}
-定义了一个命名空间,叫: 我

——3
  class Program
    {
        static void Main(string[] args)
        {
        }
    }
-定义了一个名称为Programm的类

——4
        static void Main(string[] args)
        {
        }
-这是一个方法,叫做Main

3.在文件中,命名空间中可以包含类,类中可以包含方法,方法中可以是我们写的程序。
4.一般窗口不小心关闭了,在视图中寻找。
5.重置开发环境,可以是我们的开发环境还原为默认状态。
工具-导入和导出设置-重置所有设置-否,仅重置所有设置~。
5.Main方法是我们程序的入口方法,当我们执行一个程序时,会首先找到一个Main方法,从Main的第一句程序开始执行,当Main方法执行完成后(即执行到Main方法的反大括号就结束了)。
6.初学者写程序,就先写在Main方法中。

二:C#两句话
1.解决方案-在WINDOWS资源管理器中打开文家夹
2..sln是解决方案文件
3..csproj是项目文件
4.
Console.WriteLine("你想显示的内容");
5.
Console.ReadKey();
当程序执行到Console.ReadKey();时,程序会停到这里,等待用户从键盘上键入后,程序才继续执行
6.在C#中,每一句话都必须以“分号”结束
7.工具-选项-字体和颜色
8.工具-选项-文本编辑器-行号(勾选)
9.解决方案-新建项目(在当前解决方案下新建项目)
10.项目-设置为启动项目
11.WriteLine,光标出现在下一行
12.Write,光标出现在这句话后面
13.解决方案-属性-单启动项目


03、基础知识

一:C#中的注释
1.什么是注释呢?对我们写的程序写的解释,注释是给人看的。
2.
第一种:单行注释,以//开始,到本行结束
第二种:多行注释/*开始 /*结束,之间的都为注释
第三种:文档注释,用于对类和方法进行注释
,在类或方法前面连续输入3个/
3.
namespace 我的第一个项目
{
    /// <summary>
    /// 在这个类中有一个Main方法,使我们程序的入口方法。
    /// </summary>
4. class Program
    {
        /// <summary>
        /// 程序运行时,从这里执行代码
        /// </summary>
        /// <param name="args"></param>
二:Visual Stodio中的快捷键
1.Home 无论光标在哪,按下后跳转到该行最前面
2.End 无论光标在哪,按下后跳转到该行最后面
3.Page up 上翻一页
4.Page down 下翻一页
5.Shift 选中多个字符
6.Ctrl+Home 整个文档最前面
7.Ctrl+End 整个文档最后面
8.Delete 删除光标后面的
9.Backspace 删除光标前面的
10.Insert 覆盖字符
11.over 插入字符
12.Ctrl Z/X/C/V 撤销/剪贴/复制/粘贴
12.F5调试程序
13.F6生成程序
14.#Region和#Endregion 折叠语段
   #region 我的第一个程序
            Console.WriteLine("***************************");
            Console.WriteLine("*   这是我的第一个程序    *");
            Console.WriteLine("***************************");
            Console.ReadKey();
            #endregion
10..Net开发环境(*了解)
1.开发工具:Visual Studio
.Net 是一种多语言的平台,开发.Net可以用多达几十种语言进行开发
Java 是一种单语言的平台,一种语言多平台
11.软件系统依赖关系(*)
VC++.NET C# VB.NET VJ#
.NET Framework 类库 (FCL)
公共语言运行库
操作系统
12..NET是如何实现语言无关性的(*)
MSIL:微软中间语言
13.NET Framework
Web 窗体 Web Service WinForms
ADO.NET 和 XML 类
基本框架类
CLR:公共语言运行时
CLS:公共语言规范
CTS:通用类型系统
JIT:即时编译器 


04、变量

2013-08-19 14:51:08
C#中的注释符
//单行注释
/**/多行注释
///
///文档注释
///


.NET 第二天

用户存储正在运行的程序数据(不准备)
RAM:内存有个特点,断电后里面的数据丢失。
变量:变量代表着一块内存空间,我们可以通过变量名称向内存存/取数据,有变量就不需要我们记忆复杂的内存地数据类型
整数字在C#中的数据类型叫做INT
int  number
a=1000   //把1000放进去
赋值: 变量名=值
PS:number加引号显示number,不加引号显示值
数据类型
数值:
1.A.整型:int
......
  B.非整型:double   (小数)
decimal  (金钱)
2.非数值
char
String


05、变量的使用和命名规则

2013-08-24 09:59:55
int 所包含的值前后20万
double:小数
char:字符型 只能存储一个字符,并且存储的这个字符要求用单引号引起来
string:字符串   把0个或1个或多个字符连接以来,字符串要求用双引号连接起来
int: 3 5 100
double:  3.14   10.5   -3.14
char:   'A'   'b'   'a'
string:  "zhangsan"   "李四"  "计算"
decimal:(存储金钱)5.26
__decimal d=5.55m
十几位以上的数字用decimal
十几位以下用double
注意:在C#开发环境中,直接写一个有小数点的数字,这个数字是double类型的。
在一个小数后面加一个m/M,就告诉编译器这个数字是decimal。

变量声明的三种方法:
1.先声明后赋值   int a;  a=3
2.定义变量时直接赋值   int a=3;
3.可以一次声明多个同类型的变量,多个变量之间用,相隔最后以;结束
  string zsname, lsname, wwname;
            zsname = "zs";
            lsname = "ls";
            wwname = "ww"

变量的命名规则:

1.必须以“子母”或@符号
2.后面可以跟任意“子母”,数字,下划线
注意
1.起的变量名不要和c#系统中的关键字重复(关键词会变为蓝色)
2.在c#中,大小写是敏感的
3.同一个变量名不允许重复定义(不严谨)
定义变量时,变量名要有意义
c#变量名编码规范

Camel  命名法:

首个单词的首字母小写,其余单词的的首字母大写
Pascal ,命名规范:
每个单词的第一个字母都大写
如果使用到英文单词的缩写,全部使用大写


06、输出变量的值连_赋值符_连接符_占位符 

2013-08-24 16:32:15
赋值运算符:=
a=a+1; 这里的=号是赋值运算符,不是数学意义上的相等。
变量可以重复赋值,一旦给一个变量赋了新值,那么变量中的老值就不复存在了。
右边代码的输出结果:
int age = 10;
age = 20;
Console.WriteLine(age);
在方法中定义变量,要使用Camel命名法,Main方法也是。
在一个方法中,一般情况下变量只能定义一次,但可以多次赋值,再次赋值时会把变量中原有的值覆盖掉。


“+”在C#中有两个意义

1.是数学中的加法运算:两边参与加法运算的数据类型为数字类型,则“+”表示数学上的加法的意义
2.是连接意义:两边参与加号运算的数据,有一个是字符类型,那么这个“+”就是连接意义
string a = "1";
            int b = 2;
            Console.WriteLine(a+b);

输出的值为12


我叫我,今天28岁了,我的工资是7800.33元

   string newname = "我";
            int newage = 28;
            decimal newmoney = 7600.33m;
            Console.WriteLine("我叫" + newname + ",今年" + newage + "岁了,我的工资是"+newmoney+"元");

Consolo.Writeline引号中的原封不动输出

在Conslole.Writeline("")中,第一个变量/字符串中可以使用占位符
占位符由{数字}组成,数字由0开始编号
第一个占位符:{0}
第二个占位符:{1}
第三个占位符:{2}
我叫我,今天28岁了,我的工资是7800.33元
今天28岁了,我的工资是7800.33元我叫张三,今天28岁了,我的工资是7800.33元
Console.WriteLine("{0}我叫"+newname,"今年"+newage+"岁了,我的工资是"+newmoney+"元");


07、变量交换_输入

2013-08-26 00:43:46
长数字用string
            string wname="张三";
            int wage=18;
            char wsex='男';
            string phone="010-110-2";
            Console.WriteLine("我叫{0},今年{1}岁了,性别{2},电话{3}",wname,wage,wsex,phone);
变量交换
            int a = 10;
            int b = 5;
            int temp;
            temp = a;
            a = b;
            b = temp;
            Console.WriteLine("a={0},b={1}",a,b);

用于让用户从键盘上输入一句话,当程序执行到下面这句话,就会暂停,然后等待用户从键盘上输入一句话,按回车程序会继续执行。如果想得到用户输入的内容,就需要定义一个string类型的变量,写在下面这句话前面接受用户输出的内容。
Console.ReadLine().
用户输入
接受用户输入的内容,必须定义一个字符串来进行接受
string input=Consloe.ReadLine();


08-09、数据类型的自动转换

2013-08-26 17:55:47
练习一
Console.WriteLine("请输入你喜欢吃的水果?");
            string input = Console.ReadLine();
            Console.WriteLine("这么巧啊,我也喜欢吃{0}",input);
            Console.ReadKey();
练习二
            Console.WriteLine("请问你叫什么名字?");
            string name = Console.ReadLine();
            Console.WriteLine("你好,{0}", name);
转义字符:
当我们需要在字符串中输入一些特殊字符时,比如:半角引号,换行,退格,就需要使用转义字符。
转义字符是一个字符,
在屏幕上显示:c#用的字符用“”包含起来
\+一个字符,组成转义字符,他由一个+一个子母来组成具有特殊意义的一个字符
            Console.WriteLine("c#中的字符要用\"\"引起来");
                               c#用的字符用“”包含起来
常用的转义字符
\n  换行
            Console.WriteLine("1\n2");
\b baskspace 退格
            Console.WriteLine("1\b2\b3");
\t tab键 由多个空格组成的一个字符,具有行与行之间的对其功能
            Console.WriteLine("1\t2\t3\t4\t5\t");
            Console.WriteLine("1\t22\t333\t4444\t55555\t");
\\ 表示一个 

在字符串前面加@符号有两种意义
1.字符串中如果有,则不再理解为转义符。
            Console.WriteLine(@"C:\Users\Zank\Desktop\NET听课笔记");
2.使字符串可以换行
            Console.WriteLine(@"C:\Users\Zank
            \Desktop
            \NET听课笔记");
如果字符串前面加了@符号,在字符串上用两个双引号代表一个双引号
            Console.WriteLine(@"C:\Users\Zank""\Desktop\NET听课笔记");
算术运算符及算数表达式
算术运算符: + — * / % (去余数 取模)
数表达式:由算数运算符连接起来的式子。如:1+1  a-b  (变量ab前面已经声明并赋初值)
优先级:先乘除,后加减,有括号先算括号里面的,相同级别从左至右运算
小括号可以无限制的套用,但一定要成对出现。
int chinese = 90;
            int math = 80;
            int english = 91;
            int sun = chinese + math + english;
            int avg = sun / 3;
            Console.WriteLine("您的总成绩是{0},平局成绩是{1}", sun, avg);
c#中,有五个算数运算符: + — * / %   他们都是二元运算符。
            //double pi = 3.14;
            //int r = 5;
            //double s = r * r * 3.14;
            //Console.WriteLine("s={0}",s);
要求:参与运算的两个操作数的类型必须相同,并且经过运算后的结果也与操作数的类型相同。
            double tshirPrice = 35;
            double trouserPrice = 120;
            double totalMoney = 3 * tshirPrice + 2 * trouserPrice;
            double disMoney = totalMoney * 0.88;
            Console.WriteLine("购物总计:{0},打8.8折后应付:{1}元", totalMoney, disMoney);
发生自动转换的条件
1.参与运算的两个数据类型必须相兼容
2.必须一边的数据类型表示范围小,一边的范围大,比且把小的转向大的不丢失精度

Double中包含int

一个表达式,如果其中一个操作数为double类型,那么整个数为double类型(double的精度为15)

            int a = 10, b = 3;
            int mod = a % 3;      
            double quo = 1.0*a / b;
            Console.WriteLine("mod={0}   qup={1}", mod, quo);


这里quo输出的值为3.333333333333333,为double类型,这是double除以double,如果为int除以double则显示3


10、复习-数据类型转换

2013-08-28 15:57:08
字符串无法强制转换成数字类型
Convert不再仅是内存级别的转换,而是老驴数据意义的转换。
Convert是一个加工、改造的过程
Convert.ToInt32(待转换字符串)
Convert.Tostring每种类型都还有.ToString()方法
一切类型都可以转换成为string类型
int 变量=Consvert.ToInt32(待转字符串)
上面语句的意义:把待转字符串转换成int类型后赋给变量
string strsCore="90";
int iScore = Convert.ToInt32(strScore);
把strScroe转化成int类型并且付给iScroe
            Console.WriteLine("请输入你的语文成绩?");
            string chinese = Console.ReadLine();

            Console.WriteLine("请输入你的数学成绩?");
            string math = Console.ReadLine();

            int chineseScroe = Convert.ToInt32(chinese);
            int mathScroe =Convert.ToInt32(math); 

            Console.WriteLine("你的总成绩为:{0}",chineseScroe + mathScroe);
缩写直接赋值
            int chinese =Convert.ToInt32( Console.ReadLine());