C#学习笔记 - C#基础知识 - C#从入门到放弃

C#

  • 第1节 C# 简单介绍
    • 1.1 C# 是什么
    • 1.2 C# 强大的编程功能
    • 1.3 C# 发展史
    • 1.4 C#与Java区别
  • 第2节 C#程序结构
    • 2.1 'Hello world'
    • 2.2 C# 结构解析
  • 第3节 C#基本语法
    • 3.1

第1节 C# 简单介绍

1.1 C# 是什么

C# 的发音为“C Sharp”,是一门由微软开发并获得了 ECMA(欧洲计算机制造商协会)和 ISO(国际标准组织)批准的现代的、通用的、面向对象的编程语言。

C# 之所以能称为一门被广泛应用的编程语言,原因有以下几点:

  • C# 是一种现代的通用的编程语言;
  • C# 是面向对象的; C# 是面向组件的;
  • C# 简单易学;
  • C# 是一种结构化语言;
  • 使用 C# 开发效率很高;
  • C# 可以在各种计算机平台上进行编译;
  • C# 是 .Net Framework 的一部分。

1.2 C# 强大的编程功能

一开始没接触C#的时候,我觉得它可能跟C、C++语言相似,后来发现一点也不像???它与 Java 非常相似,有很多强大的编程功能:

以下是 C# 的一些重要功能的列表:

  • 布尔条件;
  • 自动垃圾回收;
  • 标准库;
  • 组件版本;
  • 属性和事件;
  • 委托和时间管理;
  • 易于使用的泛型;
  • 索引器;
  • 条件编译;
  • 简单的多线程;
  • LINQ 和 Lambda 表达式;
  • 集成 Windows。

借助 C# 编程语言,我们可以开发不同类型且安全可靠的应用程序,例如:
1、桌面应用程序;
2、网络应用程序;
3、分布式应用程序;
4、Web 服务应用程序;
5、数据库应用程序等。

1.3 C# 发展史

在这里插入图片描述

1.4 C#与Java区别

在这里插入图片描述

第2节 C#程序结构

2.1 ‘Hello world’

“Hello, World”程序历来都用于介绍编程语言。 下面展示了此程序的 C# 代码:

using System;

class Hello
{
    static void Main()
    {
        Console.WriteLine("Hello, World");
    }
}

输出:

Hello, World

“Hello, World”程序始于引用 System 命名空间的 using 指令。 命名空间提供了一种用于组织 C# 程序和库的分层方法。命名空间包含类型和其他命名空间。例如,System 命名空间包含许多类型(如程序中引用的 Console 类)和其他许多命名空间(如 IOCollections)。 借助引用给定命名空间的 using 指令,可以非限定的方式使用作为相应命名空间成员的类型。 由于使用 using 指令,因此程序可以使用 Console.WriteLine 作为 System.Console.WriteLine 的简写。

“Hello, World”程序声明的 Hello 类只有一个成员,即 Main 方法。 Main 方法使用 static 修饰符进行声明。 实例方法可以使用关键字 this 引用特定的封闭对象实例,而静态方法则可以在不引用特定对象的情况下运行。 Main 静态方法是 C# 程序的入口点

程序的输出是由 System 命名空间中 Console 类的 WriteLine 方法生成。 此类由标准类库提供。默认情况下,编译器会自动引用标准类库。

2.2 C# 结构解析

有如下一个C# 程序代码:

using System;
namespace c.biancheng.net
{
    class Program
    {
        static void Main(string[] args)
        {
            /*第一个C#程序*/
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
    }
}

在次程序中:
1、 using System;
using 关键字用来在程序中引入 System 命名空间,一个程序中可以有多个 using 语句。
2、namespace c.biancheng.net
namespace 关键字用来声明一个命名空间,“c.biancheng.net”则是命名空间的名字。命名空间是类的集合,上面代码中名为“c.biancheng.net”的命名空间中包含了一个名为“Program”的
3、class Program
class 关键字用来定义一个类,“Program”则是类的名,类中通常用来存放程序中要使用的数据和函数(也叫方法)。
4、static void Main(string[ ] args)
此行代码中,Main 为定义的函数名称,Main 函数是整个 C# 程序的入口,其中包含了程序运行时需要执行的操作。static 和 void 都是用来修饰 Main 函数的关键字,具体含义后面我们会详细介绍。
5、 / 第一个C#程序 /
这是程序的注释,当程序运行时被/* */包裹的内容将被编译器忽略,不会执行。注释主要用来对所写的代码进行说明。
6、Console.WriteLine(“Hello World!”);
此行代码用来在命令行窗口中输出“Hello World!”。WriteLineSystem 命名空间中定义的 Console 类里面的方法,用来输出一些消息。
7、Console.ReadKey( );
此行代码是针对 VS.NET 用户的,它会使程序进入等待状态,敲击键盘上的任意一个按键即可让程序继续运行。需要这行代码是因为命令行窗口会在程序运行结束后自动关闭,导致要输出的内容一闪而过,加入此行代码则可以避免这种情况。

另外,还有以下几点需要注意:
1、C# 区分大小写;
2、所有语句和表达式都必须以英文的分号;结尾;
3、程序从 Main 函数开始执行;
4、与 Java 不同,程序文件名可以与类名不同;
5、代码中出现的{}都是成对出现的,用来标记代码块,{ }中包裹的代码可以看作是一个整体。

第3节 C#基本语法

3.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/241470.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Godot导出Android包报错:无效的包名称

问题描述 使用Godot为项目导出Android平台包时报错,提示:“无效的包名称:项目名称不符合包名格式的要求。请显式指定包名。” 解决办法 修改导出配置项“包->唯一名称”。 该项缺省值“org.godotengine.$genname”不能直接使用&#x…

Java版本+鸿鹄企业电子招投标系统源代码+支持二开+Spring cloud +鸿鹄电子招投标系统

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。为了符合国家电子招投标法律法规及相关规范,…

Debian openmediavault 自建Nas系统共享,raid5与btrfs文件系统无损原数据扩容

一、适用环境 1、企业自有物理专业服务器,一些敏感数据不外流时,使用openmediavault自建NAS系统; 2、在虚拟化环境中自建NAS系统,用于内网办公,或出差外网办公时,企业内的文件共享; 3、虚拟化环…

SD-WAN实现分公司与总部组网高效互联

随着企业的发展和扩张,对于分公司和总部的组网需求越来越多。然而企业分公司和总部之间的组网连接通常十分复杂,不仅消耗大量的预算,还耗费很长的部署时间。SD-WAN的出现使组网连接变得轻松、简单,提高了企业的网络连接效率和性能…

珠宝销售技巧培训之如何提升珠宝销售技巧

珠宝销售技巧培训之如何提升珠宝销售技巧 珠宝销售是一项需要技巧和策略的工作。在竞争激烈的珠宝市场中,销售人员需要不断提升自己的销售技巧,以吸引更多的客户并保持他们的忠诚度。本文将介绍一些提升珠宝销售技巧的方法,包括了解客户需求…

智能配电运维管理平台

智能配电运维管理平台是一种集成了自动化、智能化等技术手段的电力运维管理平台。依托智慧化工具-电易云,对配电系统的电力设备进行实时监控、数据分析和处理。该平台通常由数据采集、监控预警、计划维护、数据分析、决策支持等模块组成,能够实现电力设备…

如何处理PHP开发中的单元测试和自动化测试?

如何处理PHP开发中的单元测试和自动化测试,需要具体代码示例 随着软件开发行业的日益发展,单元测试和自动化测试成为了开发者们重视的环节。PHP作为一种广泛应用于Web开发的脚本语言,单元测试和自动化测试同样也在PHP开发中扮演着重要的角色…

冯诺依曼体系与操作系统的理解

目录 一.冯诺依曼体系结构 存储分级 为什么程序运行之前,必须加载到内存上? 二.操作系统 操作系统是什么? 为什么需要操作系统? 操作系统是如何管理软硬件资源? 一.冯诺依曼体系结构 我们常见的计算机&#xff…

docker安装rabbitmq并安装死信队列插件

环境 debian11 docker 20.10.22 rabbitmq 3.10.0 拉取镜像到本地 docker pull rabbitmq3.10.0 实例化 docker run -d --name rabbit -e RABBITMQ_DEFAULT_USERadmin -e RABBITMQ_DEFAULT_PASSadmin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:…

国标GB28181安防监控系统/磁盘阵列EasyCVR(V.3.4)新亮点:免保活功能

TSINGSEE青犀近日发布了EasyCVR安防管理平台的V.3.4版本,其中一大亮点就是很多朋友都在咨询的“免保活”功能,那么,什么是“免保活”功能?又该如何配置呢? 在EasyCVR平台有个【按需直播】按钮,顾名思义&…

3Dmax快捷键大全,让你的创作飞起来!附赠3dmax工具箱插件,快来收藏吧!

你是否曾经在3Dmax中因为繁琐的操作而感到困扰? 今天,我将为大家带来一份精心整理的3Dmax常用快捷键宝典,让你在建模、材质编辑、动画制作等各个方面都能游刃有余,让你的创作飞起来!! 💡 选择与…

专业证件翻译哪里比较正规?

随着国际化的步伐不断加快,我们与国外的交流日益频繁,无论是出国留学、旅游还是商务活动,都离不开证件翻译。那么,在选择证件翻译服务时,我们应该注意哪些事项呢?哪里能找到正规的翻译服务呢? 我…

Flink的容错机制

容错机制 容错:指出错后不影响数据的继续处理,并且恢复到出错前的状态。 检查点:用存档读档的方式,将之前的某个时间点的所有状态保存下来,故障恢复继续处理的结果应该和发送故障前完全一致,这就是所谓的检…

Flutter自定义TextInputFormatter实现金额输入框,同时解决iOS数字键盘不能输入小数点的问题

一、实现的效果 二、金额输入框基本要求 只能输入.和数字小数点后只能有俩位小数点不能作为开头 三、在iOS设备上这里还有个坑,数字键盘上这个小数点会根据你手机设置的不同国家地区来决定显示是.还是, 如下 所以这个时候最好的解决办法是允许输入.、数字和,然后在…

C++ Qt开发:CheckBox多选框组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍CheckBox单行输入框组件的常用方法及灵活运用…

GPT分区好处不言而喻!如何在Windows 11中将MBR转换为GPT分区

学习如何在Windows 11上将MBR转换为GPT分区将使你的计算机更好地组织起来。 GPT分区(GUID分区表)优于MBR分区,因为它允许128个分区,并且支持远大于2 TB的分区(每个分区最多支持1880万TB的空间)。另一方面&…

npm安装,idea中启动vue失败

node 设置配置之后,要查询时,会从.npmrc中读取路径 .npmrc自己创建的(默认情况下.npmrc会创建在C盘中) 我创建的在D:\studay-and-working\node16.14\node_modules\npm中 指定.npmrc文件,因为默认会访问C盘的.npmrc文件…

redis-学习笔记(Jedis string 简单命令)

mset & mget 批量设置和获取键值对 可以看出,参数都是可变参数 (就是说, 可以写任意个) 代码演示 getrange & setrange 获取和设置 string 类型中 某一区间的值 代码演示 append 往字符串的末尾拼接字符串 代码演示 incr & decr 如果 string 中为数字的话, 可以进行…

小程序禁止滚动穿透,page-meta

使用场景:页面中有弹窗,并且弹窗里数据超过弹窗的高,要在弹窗做滑动操作,当弹窗滑动到底部的时候,继续划动会导致底层页面的滚动,这就是滚动穿透。这种情况对于体验感很不友好。 解决办法:使用p…

vs2017+qt5.14.2遇到的问题

1、在安装qt插件后,导入pro文件时,报 msvc-version.conf loaded but QMAKE_MSC_VER isn’t set 修改E:\Qt\Qt5.14.2\5.14.2\msvc2017_64\mkspecs\common\msvc-version.conf文件中添加