当前位置: 首页 > news >正文

c#基础010(程序结构)

文章目录

    • C#程序结构
    • 编译、执行C#程序
    • C#基本语法
      • using关键字
      • class关键字
        • 成员变量
        • 成员函数
      • C#关键字
      • 顶级语句
    • C#数据类型
      • 值类型
      • 引用类型
        • 对象(Object)类型

C#程序结构

一个c#程序主要包括一下部分:

  • 命名空间声明
  • 一个class
  • Class方法
  • Class属性
  • 一个Main方法
  • 语句&表达式
  • 注释

C#文件的后缀未.cs

示例:

using System;
namespace HelloWorldApplication
{class HelloWorld{static void Main(string[] args){/* 我的第一个 C# 程序*/Console.WriteLine("Hello World");Console.ReadKey();}}
}

结果:

在这里插入图片描述
程序的各个部分:

  • 程序的第一行 using System; - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句。
  • 下一行是 namespace 声明。一个 namespace 里包含了一系列的类。HelloWorldApplication 命名空间包含了类 HelloWorld
  • 下一行是 class 声明。类 HelloWorld 包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。在这里,HelloWorld 类只有一个 Main 方法。
  • 下一行定义了 Main 方法,是所有 C# 程序的 入口点Main 方法说明当执行时 类将做什么动作。
  • 下一行 // 将会被编译器忽略,且它会在程序中添加额外的 注释

小贴士:

  • 对于标识符来说,c#是大小写敏感的。标识符:指变量名、函数名、属性名都属于标识符。
  • 所有的语句和表达式必须以分号;结尾。
  • 程序的执行从Main方法开始。
  • 与Java不同的是,文件名可以不同于类的名称。

编译、执行C#程序

使用工具:Visual Studio 2022

1.打开Visual Studio2022

2.如果你没有之前的项目,点击创建新项目;之前有项目直接点击打开项目或解决方案

在这里插入图片描述
在这里插入图片描述

  • 点击创建后,选择左上角的C#,选择控制台应用,点击下一步
    在这里插入图片描述
    在这里插入图片描述
  • 输入项目名称、选择保存的位置,输入解决方案名称(项目包含在解决方案文件夹中),点击下一步
    在这里插入图片描述
  • 小白建议勾选上不使用顶级语句,框架选择最新的长期支持版本,点击创建
    在这里插入图片描述
  • 运行c#代码
    在这里插入图片描述

C#基本语法

C#是一种面向对象的编程语言。在面向对象的设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型。

using关键字

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

using System;

using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。

class关键字

class关键字用于声明一个类

成员变量

变量是类的属性或数据成员,用于存储数据

成员函数

函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。

C#关键字

保留关键字
abstractasbaseboolbreakbytecase
catchcharcheckedclassconstcontinuedecimal
defaultdelegatedodoubleelseenumevent
explicitexternfalsefinallyfixedfloatfor
foreachgotoifimplicitinin (generic modifier)int
interfaceinternalislocklongnamespacenew
nullobjectoperatoroutout (generic modifier)overrideparams
privateprotectedpublicreadonlyrefreturnsbyte
sealedshortsizeofstackallocstaticstringstruct
switchthisthrowtruetrytypeofuint
ulonguncheckedunsafeushortusingvirtualvoid
volatilewhile
上下文关键字
addaliasascendingdescendingdynamicfromget
globalgroupintojoinletorderbypartial (type)
partial (method)removeselectset

顶级语句

特点:

  • 无需类或方法:顶级语句允许你直接在文件的顶层编写代码,无需定义类或方法。
  • 文件作为入口点:包含顶级语句的文件被视为程序的入口点,类似于C#之前的Main方法。
  • 自动Main方法:编译器会自动生成一个Main方法
  • 支持局部函数
  • 更好的可读性

示例:

传统C#代码(未使用顶级语句)

using System;namespace MyApp
{class Program{static void Main(string[] args){Console.WriteLine("Hello, World!");}}
}

使用顶级语句

using System;Console.WriteLine("Hello, World!");

小贴士:

  • **文件限制:**顶级语句只能在一个源文件中使用。如果在一个项目中有多个使用顶级语句的文件,会导致编译错误。
  • **程序入口:**如果使用顶级语句,则该文件会隐式地包含 Main 方法,并且该文件将成为程序的入口点。
  • **作用域限制:**顶级语句中的代码共享一个全局作用域,这意味着可以在顶级语句中定义的变量和方法可以在整个文件中访问。

C#数据类型

在C#中,变量分为一下几种类型:

  • 值类型
  • 引用类型
  • 指针类型

值类型

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。

类型描述范围默认值
bool布尔值True 或 FalseFalse
byte8 位无符号整数0 到 2550
char16 位 Unicode 字符U +0000 到 U +ffff‘\0’
decimal128 位精确的十进制值,28-29 有效位数(-7.9 x 1028 到 7.9 x 1028) / 100 到 280.0M
double64 位双精度浮点型(+/-)5.0 x 10-324 到 (+/-)1.7 x 103080.0D
float32 位单精度浮点型-3.4 x 1038 到 + 3.4 x 10380.0F
int32 位有符号整数类型-2,147,483,648 到 2,147,483,6470
long64 位有符号整数类型-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8070L
sbyte8 位有符号整数类型-128 到 1270
short16 位有符号整数类型-32,768 到 32,7670
uint32 位无符号整数类型0 到 4,294,967,2950
ulong64 位无符号整数类型0 到 18,446,744,073,709,551,6150
ushort16 位无符号整数类型0 到 65,5350

引用类型

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用

内置引用类型:objectdynamicstring

对象(Object)类型

Object是C#通用类型系统中所有数据类型的终极基类。Object是System.Object的别名。所以Object类型可以被分配任何其他类型(值类型、引用类型等)

相关文章:

  • JavaSec-XSS
  • Mysql 身份认证绕过漏洞 CVE-2012-2122
  • OpenResty 安装指南
  • DNS攻击类型有哪些?如何应对DNS攻击威胁?
  • 12.MySQL视图特性
  • 高敏感应用如何保护自身不被逆向?iOS 安全加固策略与工具组合实战(含 Ipa Guard 等)
  • 无法下载CUDA,下载界面链接打开异常
  • Linux网络——socket网络通信udp
  • 13.4 AI颠覆语言学习:预录制视频+GPT-4评估如何实现60%成本降低与40%留存飙升
  • JSON Web Token (JWT) 详解:由来、原理与应用实践
  • CloudCompare——计算点云表面曲率
  • 基于Docker Compose部署Java微服务项目
  • day47 TensorBoard学习
  • Java 异步编程难题及拆解技术
  • 在嵌入式中C语言中static修饰的变量常量和字符串常量存储位置
  • Flink 高可用集群部署指南
  • 【Algorithm】Union-Find简单介绍
  • Filebeat收集nginx日志到elasticsearch,最终在kibana做展示(二)
  • JAVA之 Lambda
  • 算法训练第九天
  • 一个网站绑定两个域名/优化提升
  • 河北教育网站建设/外贸推广方式
  • 网站开发单子/深圳公关公司
  • 余姚网站开发/海外网络推广服务
  • 做网站需要备案吗/口碑营销方案怎么写
  • 自己怎样做网站显示危险/2020做seo还有出路吗