C#语言简介​

66 阅读8分钟

 什么是程序(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注释,有什么用途?

  1. 描述文档结构:XML注解可以定义和描述XML文档的结构,包括文档头、根节点、元素、属性和命名空间等,从而使数据格式更加清晰明了。
  2. 标记重要元素:XML注解还可以标记文档中一些重要的元素,如验证规则、约束条件和数据类型等。
  3. 数据交换:XML注解定义好的数据结构具有良好的可扩展性和互操作性,可以用于数据交换场合,如Web服务端和客户端之间的数据交换。
  4. 数据持久化:XML注解可以将数据格式化为文本格式,从而将其存储在文件或数据库中,以实现数据的持久化。
  5. 客户端解析: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;
        }