002集——C#基本语法——C#学习笔记

news2024/9/21 12:52:30

C# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中。
例如,以 Rectangle(矩形)对象为例。它具有 length 和 width 属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。
让我们来看看一个 Rectangle(矩形)类的实现,并借此讨论 C# 的基本语法:

首先新建一个控制台,如下图:

using System;
namespace RectangleApplication
{
    class Rectangle
    {
        // 成员变量
        int length;
        int width;
        public void Acceptdetails()
        {
            length = 1;    
            width = 2;
        }
        public int GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }
   
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

在C#中,static void Main(string[] args) 是一个特殊的方法签名,它指定了程序的入口点。这意味着当程序启动时,这个方法会首先被执行。下面是对这个签名各个部分的解释:

static:这个关键字表明Main方法是一个静态方法,即它属于类本身而不是类的某个特定实例。由于Main方法是程序的入口点,并且程序在创建任何类的实例之前就开始执行,因此它必须是静态的。
void:这个关键字表示Main方法不返回任何值。在C#中,如果一个方法不产生任何结果供调用者使用,那么它的返回类型就是void。
Main:这是方法的名称。在C#中,Main是一个特殊的名称,用于指定程序的入口点。虽然技术上你可以使用其他名称(但需要使用特定的属性来指定入口点),但Main是最常用和标准的。
(string[] args):这是方法的参数列表,包含一个名为args的参数,它是string类型的数组。这个数组用于接收命令行参数,这些参数是在命令行或终端中运行程序时指定的。例如,如果你在命令行中运行一个程序并附加了arg1 arg2,那么args数组将包含两个元素:args[0]将是"arg1",args[1]将是"arg2"。如果没有提供任何命令行参数,args数组将至少包含一个元素,即空字符串(""),但你也可以将其视为空的或未使用的。
综上所述,static void Main(string[] args) 定义了一个静态的、不返回任何值的方法,它是C#程序的入口点,并且可以接收来自命令行的参数。这是大多数C#控制台应用程序和许多其他类型应用程序的标准入口点签名。

运行结果:

 

C#基本语法

在C#中,当你使用Console.WriteLine或类似的输出方法时,字符串中的{}用作占位符,表示该位置将被后续参数的值所替换。这些占位符允许你在字符串中嵌入变量的值或表达式的结果,而不需要使用字符串连接(+)操作符。



{0} 是一个占位符,表示该位置将被Console.WriteLine方法的第二个参数(在本例中为length、width和GetArea()的返回值)的值所替换。
需要注意的是,占位符中的数字(在这个例子中是0)指定了Console.WriteLine方法中参数列表的索引位置(索引从0开始)。然而,在只有一个占位符的情况下,你可以省略索引(即只写{}),因为编译器会自动将其视为第一个参数。但是,为了清晰起见,特别是在有多个占位符时,明确指定索引是一个好习惯。
如果你的代码中有多个占位符,你可以这样使用它们:


int a = 10, b = 20;  
Console.WriteLine("a is {0} and b is {1}", a, b);
这里,{0}将被a的值替换,{1}将被b的值替换。

但是,对于你的特定情况,由于每个Console.WriteLine调用只包含一个占位符,你可以省略索引,如下所示:


Console.WriteLine("Length: {}", length); // 注意:在C#中,这样做实际上需要String.Format或插值字符串  
// 但对于Console.WriteLine来说,更常见的做法是直接使用+操作符或C# 6.0及更高版本中的插值字符串  
Console.WriteLine("Length: " + length); // 使用+操作符  
Console.WriteLine($"Length: {length}"); // 使用插值字符串(推荐)  
  
Console.WriteLine($"Width: {width}");  
Console.WriteLine($"Area: {GetArea()}");
然而,上面的Console.WriteLine("Length: {}", length);示例在C#中并不是直接支持的语法。我提到它只是为了说明占位符的概念。在C#中,对于Console.WriteLine,你通常会使用+操作符来连接字符串和变量,或者使用C# 6.0及更高版本中引入的插值字符串(如上面最后两个示例所示)。

using关键字
在任何 C# 程序中的第一条语句都是:

using System;
 一般在程序开头添加 using System;,这时System.String 就可简写为string 。
例如:

// using System;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.String a = "Hello World!";
            System.Console.WriteLine(a);
            System.Console.ReadKey();
        }
    }
}
 和

using System;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = "Hello World!";
            Console.WriteLine(a);
            Console.ReadKey();
        }
    }
}
 是等价的。
using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。

class关键字
class关键字用于声明一个类

注释
注释是用于解释代码。编译器会忽略注释的条目。在 C# 程序中,多行注释以/*开始,并以字符 */ 终止,如下所示:

/* This program demonstrates
The basic syntax of C# programming 
Language */
 单行注释是用 ‘//’ 符号表示。例如:

}//end class Rectangle    
成员变量
变量是类的属性或数据成员,用于存储数据。在上面的程序中,Rectangle 类有两个成员变量,名为 length 和 width。

成员函数
函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。我们举例的类 Rectangle 包含了三个成员函数: AcceptDetails、GetArea 和 Display。

实例化一个类
在上面的程序中,类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类。

Rectangle r = new Rectangle();

标识符
标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
标识符中的第一个字符不能是数字。
标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \。
标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
不能与C#的类库名称相同。
C#关键字
关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。
在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。
下表列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文读懂如何选择视频孪生三维建模方式及建模精度等级

导言/INTRODUCTION 三维模型是视频孪生应用的基础,建模方式与模型精度将直接影响到最终孪生场景的呈现和应用效果。各种建模方式和模型精度在成本、场景还原真实度、实施周期方面都有自己的特点,因而有着各自的优劣势和适用场景,同一场景可能…

基于Hadoop的国内手机销售大数据分析与可视化研究【百万数据集】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍 绪论研究背景研究目的研究意义 相关技术理论介绍Hadoop相关理论HIve数据仓库flume组件介绍sqoop组件介绍Pyecharts介绍 数据来源及处理数据介绍数据预处理 Hadoop集群搭建Hadoop全…

安装python+python的基础语法

安装python python2为内置,安装python3----3.6.8 最新安装3.12使用源码安装 1.查看yum源,epel [rootpython01 ~]# yum list installed |grep epel 2.安装python3 [rootpython01 ~]# yum -y install python3 3.查看版本 [rootpython01 ~]# python…

计算机硬件 课程导读

目录 一、老师介绍 二、课程目标 三、课程大纲 一、老师介绍 学问小小谢 我是一个热爱分享知识的人,我深信知识的力量能够启迪思考,丰富生活。 欢迎每一位对知识有渴望的朋友,如果你对我的创作感兴趣,或者我们有着共同的兴趣点&…

vue3组件之间通讯

1. props,实现父组件向子组件通讯。 父组件 :对子组件属性绑定要通讯的数据。 子组件:通过defineProps来进行数据接收。 2. emit,实现子组件向父组件通讯。 子组件:通过emit创建向父组件传递数据事件 父组件&#…

Chromium编译指南2024 - Android篇:环境准备(二)

1.引言 在前面的章节中,我们详细介绍了编译 Chromium for Android 所需的系统和硬件要求。在确保您的开发环境符合这些基本要求后,接下来我们将重点讲解如何具体配置您的开发环境,以便顺利编译 Chromium。本篇文章将涵盖从更改软件源到安装基…

[matlab] 鲸鱼优化算法优化KNN分类器的特征选择

目录 引言 智能优化算法概述 智能优化算法在KNN特征选择中的应用 应用步骤 UCI数据集 鲸鱼优化算法 一、算法背景与原理 二、算法组成与步骤 三、算法特点与优势 四、应用与挑战 代码实现 鲸鱼优化算法 主程序 打印结果 引言 智能优化算法在优化KNN(…

5、关于kali搭建vulhub

Vulhub是一个基于Docker和Docker-compose的漏洞靶场环境,所以搭建vulhub分三步: 1、安装docker 2、安装docker-compose 3、安装vulhub 一、安装步骤 1、安装docker 因为kali太久没用,所以需要先更新软件列表最新源 apt-get update 安装do…

C++ vector的基本使用

目录 1. vector的定义 2. 迭代器iterator的使用 3. vector空间增长问题 (1). size与capacity (2). empty与resize与reserve 4. vector的增删查改 (1) . push_back和pop_back (2). find与insert与erase (3). swap与operator[] 5. vector迭代器失效问题 (1). 改变空间 (…

爱玛电动车今年多次抽查不合格:营收增速放缓承压,拟50亿扩产能

《港湾商业观察》廖紫雯 7月26日,市场监管总局发布《2024年上半年电动自行车产品质量国家监督专项抽查结果情况通报》,爱玛电动车五次上榜。 除却一直以来被多次诟病的电动车产品质量问题外,业绩层面上,近两年数据来看&#xff…

从格斗项目的着装和格斗术,理解巴黎奥运会上的拳击、跆拳道、柔道、摔跤之间到底有什么区别?

文章目录 引言I 柔道着装格斗术II 摔跤装备“摔跤耳”格斗术:古典式摔跤和自由式摔跤III 跆拳道装备格斗术等级段位制(“十级九段制”)IV 拳击装备格斗术拳击手小结引言 8月1日巴黎,柔道女子-78公斤级比赛结束,意大利贝兰迪夺得金牌,以色列拉尼尔摘得银牌,中国选手马振昭和…

SAM-Med2D 大模型学习笔记(续):训练自己数据集

1、前言、数据集介绍 SAM-Med2D大模型介绍参考上文:第三章:SAM-Med2D大模型复现-CSDN博客 本文将使用SAM-Med2D大模型训练自己的数据集 关于SAM-Med2D大模型官方demo数据集的介绍上文已经介绍过,这里简单回顾下 其中data_demo为数据集的目…

你的工作环境,选对劳保鞋了吗?守护安全,从脚下开始!

在众多的工作场所中,我们穿梭于不同的工作环境,从繁忙的工厂车间到复杂的建筑工地,再到需要精细操作的实验室……每一步都承载着对安全的期许和对效率的追求。但你是否意识到,脚下那双不起眼的劳保鞋,其实是守护你安全…

洞见优维「全面可观测」:从85%的AI项目败率说起

一直以来,优维都坚信AI有潜力改变运维行业并促进创新,这是我们的A面。但从行业和客户那里,我们所看到的B面也不容忽视。 自从去年底发布优维全面可观测以来(点击回顾),我们的团队在服务客户的进程中常常感…

国内下载gradle慢,下载gradle超时问题解决【笔记】

下载gradle超时、慢 修改 找到项目中的gradle-wrapper.properties文件 修改 替换默认下载链接地址 distributionUrlhttps\://services.gradle.org/distributions替换为腾讯或阿里的链接地址 厂商链接阿里https://mirrors.aliyun.com/macports/distfiles/gradle腾讯https://…

vue请求springboot接口下载zip文件

说明 其实只需要按照普通文件流下载即可&#xff0c;以下是一个例子&#xff0c;仅供参考。 springboot接口 RestController RequestMapping("/api/files") public class FileController {GetMapping("/download")public ResponseEntity<Resource>…

C++ 多态三

1.多态的概念 多态的前提的是继承。当不同的对象去完成同一种行为时会产生不同的结果就是多态的通俗意义。 例如学生、成人两个对象去完成买票这个行为&#xff0c;那么学生的结果是获得半价&#xff0c;而成人获得的结果的是全价。 2.多态的定义及实现 2.1构成多态的两个硬…

自闭症学校排名前十,揭秘顶级干预学校

在当今社会&#xff0c;自闭症儿童的数量不断上升&#xff0c;众多家庭都在全力以赴地为孩子寻找适宜的自闭症学校。当面临这一重要抉择时&#xff0c;家长们常常首先想到的便是查看自闭症学校排名前十的榜单。然而&#xff0c;网络上此类排名繁多&#xff0c;其真实性与可靠性…

国产光耦的工作原理、优势以及应用介绍

国产光耦作为一种关键的电子元件&#xff0c;因其卓越的光隔离特性&#xff0c;被广泛应用于电气隔离和信号隔离领域。其可靠的性能使其在电源管理、数据通信和音频处理等领域发挥重要作用。 国产光耦是由发光二极管&#xff08;LED&#xff09;和光敏器件&#xff08;如光敏晶…

查理三世的假期并不理想 对泰勒·斯威夫特主题舞会引发的骚乱未采取其他行动遭各方批评

当查理三世国王在苏格兰巴尔莫勒尔堡享受一年一度的夏日假期时&#xff0c;英国其他地区却在应对由 7 月 29 日泰勒斯威夫特主题舞会上持刀袭击而引发的骚乱。王室成员在宫殿高墙内休息&#xff0c;而暴力事件却不断增多&#xff0c;这种对比让许多原本忠实的粉丝感到不安。 由…