什么是程序(Program)
程序叫软件 软件是和硬件相对的 硬件是计算机 , 计算机具有运算能力 ,让计算机能听懂我们的指令 就需要用语言 0代表关闭 1代表开启 又0和1形成的指令 把指令形成逻辑 交给计算机看懂 指令没错计算机运行
为什么需要程序
释放计算机的运算能力
怎样编写程序和程序语言的选择
编辑—>编译—>调试—>发布
编程的学习路径
纵向:语言—>类库—>框架
横向:语言行程序,桌面程序,设备(平板/手机)程序,Web(网站/服务)程序,游戏。。。。
开发环境和学习资料
vs
c#语言入门
Solution(解决方案)与Project(项目)
Solution:解决方案--最高级别 一个Solution 包含多个Project
Project:项目
//引用命名空间
//命名空间是一个范围,用来标注成员的归属
//using 关键字,用来指定命名空间,它可以告诉编译器,后续执行的代码,使用的是那个命名空间
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingA;
usingB;
// namespace 命名空间的名称 定义一个命名空间
namespace_01_基础结构
{
/// <summary>
/// internal 是一个访问修饰符 限制这个类的可访问性 只能在当前项目访问
/// class 创建一个类 类名 Program "程序"
/// </summary>
internalclassProgram
{
/// <summary>
/// 程序的入口
/// </summary>
/// <param name="args">string数组类型的字符串</param>
/// 函数,方法 这个名字为Main的函数 是整个程序的入口 主函数
///
/// 格式: static void 方法名(参数);
// static: 将Main函数声明为静态的
// void: 函数的返回值类型 void 空返回 函数执行完毕之后,不会返回任何内容
// string[] args 参数的数据类型 string 字符串类型 string[] string类型的数组 声明一个数据类型为 字符串数组 类型的变量叫做args
staticvoidMain(string[] args)
{}
三种技术实现Hello,World 程序
Console(控制台)
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespace_01_Console_Hello_World
{
internalclassProgram
{
staticvoidMain(string[] args)
{
Console.WriteLine("Hello,World!");
}
}
}
控制台操作的方法
staticvoidMain(string[] args)
{
// Console 类 这个类包含了一些控制台操作的方法
//小方块 就是方法 行为 能够干什么
//小扳手 就是属性 保存了那些东西
//从代码 ----> 控制台
//WriteLine() 向控制台 输出一段内容 并换行
Console.WriteLine("控制台输出一段内容");
Console.WriteLine("控制台输出一段内容");
//Write() 向控制台输入一段内容 不会换行的
Console.Write("控制台输出一段内容\n");
Console.Write("控制台输出一段内容");
//Beep() 蜂鸣器 通过控制台扬声器播放提示音
// Console.Beep();
//通过控制台扬声器播放指定频率和持续时间的提示音
//参数1: 提示音的频率 介于37-32767之间
//参数2: 提示音的持续时间 以毫秒为单位
Console.Beep(2000,1000);
//Clear 清除控制台缓冲区的内容
// Console.Clear();
//控制台信息的接收
//控制台---->代码中
//ReadKey() 获取用户输入的一个字符,或者功能键,如果用户没有输入字符 后续的代买不会执行
//用一个变量存储用户按下的键
//ConsoleKeyInfo 就是一个数据类型 和int double是一样的 int 存整数 double存小数
// ConsoleKeyInfo 存从控制台接收的内容的类型
ConsoleKeyInfok = Console.ReadKey();
Console.WriteLine("-------");
//Key属性 表示当前按下的键位 (标识)
Console.WriteLine(k.Key);
//KeyChar 表示 当前按下的键值
Console.WriteLine(k.KeyChar);
if (k.KeyChar=='a')
{
Console.WriteLine("用户按下的是A键");
}
Console.WriteLine("-------");
//获取用户输入的一行文本(输入之后敲回车,才算一行文本)
//从控制台接收到的内容是string类型 1===>"1" 10==="10"
string l=Console.ReadLine();
Console.WriteLine("后续的代码");
//以上这些操作 后面都带有一个() 我们将这些操作 称之为方法的调用(黄色的单词 就是方法)
//() 执行运算符
//属性 保存的有关于控制台的信息
Console.WriteLine("获取当前控制台的背景颜色");
Console.WriteLine(Console.BackgroundColor);//Black
//设置控制台的背景颜色
/*
* public enum ConsoleColor
{
Black,//黑色
DarkBlue, //深蓝色
DarkGreen, //深绿
DarkCyan,
DarkRed,
DarkMagenta,
DarkYellow,
Gray, ''灰色
DarkGray,
Blue,//蓝色
Green,//绿色
Cyan,
Red, //红色
Magenta,
Yellow, //黄色
White //白色
}
ConsoleColor 是一个枚举类型
*/
Console.BackgroundColor=ConsoleColor.Red;
Console.WriteLine("获取当前控制台的前景色(字体颜色)");
ConsoleColor c= Console.ForegroundColor;
Console.WriteLine(Console.ForegroundColor);//Gray
Console.ForegroundColor=ConsoleColor.Yellow;
//总结:
/*
* 方法: 行为 用()触发这个行为 xxx.xxx();
* 属性: 记录一些信息,可以使用 . 进行获取 xxx.xxx
* 使用 = 进行设置(修改) xxx.xxxx=xxxx;
*/
Console.WriteLine("后续");
Console.WriteLine("后续");
Console.WriteLine("后续");
}
Windows Froms(Old)
namespaceWinFormsHelloWorld
{
publicpartialclassForm1 : Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbuttonSayHello_Click(objectsender, EventArgse)
{
textBoxShowHello.Text="Hello,World!";
}
}
}
WPF(Windows Presentation Foundation)
usingSystem.Windows.Data;
usingSystem.Windows.Documents;
usingSystem.Windows.Input;
usingSystem.Windows.Media;
usingSystem.Windows.Media.Imaging;
usingSystem.Windows.Navigation;
usingSystem.Windows.Shapes;
namespaceWpfHelloWorld
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
publicpartialclassMainWindow : Window
{
publicMainWindow()
{
InitializeComponent();
}
privatevoidbuttonSayHello_Click(objectsender, RoutedEventArgse)
{
textBoxShowHello.Text="Hello,World!";
}
}
}
暂无
//ASP.NET Web Forms(Old)
//ASP.NET MVC(Model-View-Controller)
//WCF(Windows Communication Foundation)
//Windows Store Application
Windows Phone Application
Cloud(Windows Azure)
WF(Workflow Foundation)
计算机基础常识
字节(Byte) 是计算机存储的基本单位
计算机存储单位的体系从最小到位(bit) 到最大单位(如尧字节YB) 构成了- -套完整的计量系统,以下是关键要点解析:
1.基本单位与最小单位
●字节! (Byte) 是计算机存储的基本单位,由8个二进制位(bit) 组成,可容纳-一个英文字符(汉字需2字节)。
●位(bit) 是最小单位,表示一个二进制状态(0或1)。
2.常见存储单位及换算关系
单位层级从小到,yte (字节)→KB
●bit(位)-→Byte(字节)-→KB(千字节)->MB(兆字节)-→GB(吉字节)-→TB(太字节)->PB(拍字节)->EB(艾字节)->ZB(泽字节)->YB(尧字节)。
●换算基数:每级以1024 (210) 递增,硬盘厂商可能采用1000近似值。
3.其他相关概念
●字(Word) :由多个字节组成(如2字节、4字节等),与CPU字长相关。
●编址:存储器以字节为单位编号,用于计算容量(如“末位地址-起始地址+1")。
4.应用示例
●ASCII码: 1字节存储。
●汉字编码:通常需2字节。
●存储设备容量:如1TB硬盘实际可用空间约为10244字节(理论值)。
总结:理解存储单位需明确基本单位(Byte) 与最小单位(bit) 的区别,掌握1024进制换算规则,并注意字符编码与硬件设计的实际应用。
XML文档注释
什么是xml的注释?
XML注解是一种用于描述XML文档结构和元素内容的标记语言。它是通过在XML文档中使用特殊的标记来定义文档结构和元素属性的。XML注解通常用于数据编码和数据交换的应用程序之间,以确保数据的一致性和互操作性。 XML注解具有良好的可扩展性和可读性,因此它通常是最常用的数据交换格式之一。
为什么要学习xml注释,有什么用途?
- 描述文档结构:XML注解可以定义和描述XML文档的结构,包括文档头、根节点、元素、属性和命名空间等,从而使数据格式更加清晰明了。
- 标记重要元素:XML注解还可以标记文档中一些重要的元素,如验证规则、约束条件和数据类型等。
- 数据交换:XML注解定义好的数据结构具有良好的可扩展性和互操作性,可以用于数据交换场合,如Web服务端和客户端之间的数据交换。
- 数据持久化:XML注解可以将数据格式化为文本格式,从而将其存储在文件或数据库中,以实现数据的持久化。
- 客户端解析:XML注解格式化的数据可以被客户端解析,并用于生成用户界面,提供数据查询和分析等功能。
在Visual Studio中,在某个函数前新起一行,输入///,VS.Net会自动增加XML格式的注释
编译器识别的标记
| 标记 | 说明 |
|---|---|
<C> | 把行中的文本标记为代码,例如<c>int i=10;</c> |
<code> | 把多行标记为代码 |
<example> | 标记为代码示例 |
<exception> | 说明一个异常类 |
<include> | 包含其他文档说明文件的注释 |
<list> | 把列表插入文档中 |
<para> | 建立文本的结构 |
<param> | 标记方法的参数 |
<paramref> | 表明一个单词是方法的参数 |
<permission> | 说明对成员的访问 |
<remarks> | 给成员添加描述 |
<returns> | 说明方法的返回值 |
<see> | 提供对另一参数的交叉引用 |
<seealso> | 提供描述中的参见部分 |
<summary> | 提供类型或成员的简短描述 |
<typeparam> | 用在泛型类型的注释中,以说明一个类型参数 |
<typepararef> | 类型参数的名称 |
<value> | 描述属性 |
添加XLM注释的方法
在要注释内容的上一行点击三次“/”(要在英文输入的模式下)编译器会自动添加注释内容,如果还是添加不上,在vs下点击工具->选项->文本编辑器->C#->高级->(勾选)为///生成XLM文档注释
// <summary>对 类 属性 字段 方法... 功能的描述
// <param> 对参数的描述
// <returns> 对返回值的描述
/// <summary>
/// 从后向前查询参数在源字符串首次出现的索引的位置
/// </summary>
/// <param name="beseString">被查询的源字符串</param>
/// <param name="value">查询的字符串</param>
/// <returns>如果存在 返回索引 不存在,返回-1</returns>
示例
// <summary>对 类 属性 字段 方法... 功能的描述
// <param> 对参数的描述
// <returns> 对返回值的描述
/// <summary>
/// 从后向前查询参数在源字符串首次出现的索引的位置
/// </summary>
/// <param name="beseString">被查询的源字符串</param>
/// <param name="value">查询的字符串</param>
/// <returns>如果存在 返回索引 不存在,返回-1</returns>
staticpublicintLastIndexOf(stringbeseString, stringvalue)
{
intlen=value.Length;
for (inti=beseString.Length-len; i>=0; i--)
{
strings="";
for (intj=i; j<=i+len-1; j++)
{
s+=beseString[j];
}
if (s==value)
{
returni;
}
}
return-1;
}