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

C#:基本语法

写在前面

本人在实习过程需要用C#进行开发,但本人之前的技术栈是C++方向,所以在菜鸟教程上速通了一下C#的基本语法,总的来说和C++还是非常相似的。

1 关键字

  • using关键字:使用命名空间
  • class:使用类

2 注释

/* 这个程序演示
C# 的注释使用 
*/// 单行注释

3 数据类型

  • 值类型
    • 可以用sizeof获得类型大小
  • 引用类型
    • object:所有数据类型的基类
    • dynamic:运行时检查类型
    • string
      • “”
      • @
    • class
    • interface
    • delegate
  • 指针类型:类似于C++中的指针

4 类型转换

  • 隐式类型转换:小范围类型到大范围类型,编译器自动完成
  • 显式类型转换大范围类型到小范围类型,强制执行
  • 类型转换方法
    • Convert类:基本数据类型间转换
    • Parse方法:字符串转换为对应的数值类型
    • TryParse方法:类似Parse方法

5 变量

5.1 变量类型

  • 整数
  • 浮点
  • 十进制
  • 布尔
  • 空字符串
  • 空类型

5.2 作用域

  • 局部变量:只在声明的代码块中可见
  • 块级作用域:{}中的作用域
  • 方法参数作用域:在整个方法中可见
  • 全局变量:在整个命名空间可见
  • 静态变量:在被定义的类中可见
  • 循环变量:循环中可见

6 常量

  • 整数常量:
    • 前缀:十进制(无),八进制(0),十六进制(0X,0x)
    • 后缀:unsigned(U,u),long(L,l)
  • 浮点常量:整数、小数点、小数部分和指数
  • 字符常量:使用单引号括住
  • 字符串常量:使用双引号或者@“”
  • 使用const关键字修饰

7 运算符

总结一些C#中的重要运算符

  • typeof:返回class的类型
  • is:判断对象是否为某一类型
  • as:强制类型转换,即使转换失败也不会抛出异常

8 封装

访问修饰符

  • public:所有对象都可以访问
  • private:类内对象可以访问
  • protected:类和子类对象可以访问
  • internal:同一程序集对象可以访问
  • 带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。
  • protected internal:访问限于当前程序集或派生自包含的类型

9 方法

类似C++

10 可空类型(Nullable)

C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值。类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null。
在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。

  • ?:用于对于int,double,bool等无法直接赋值为null的数据类型进行null的赋值。
  • ??:用于在判断一个变量为null的时候返回一个指定的值。

11 数组,字符串,结构体,枚举和类

与C++基本相同

12 继承

C#不支持多重继承,可以通过接口继承实现

13 接口

类似于抽象类,定义了类需要实现的方法。

14 文件操作

System.IO命名空间有各种不同的类,用于进行各种文件操作。

  • FileStream类:文件的读写和关闭

15 特性

特性可以看作是一种标记或注解,它们可以提供关于程序元素的附加信息,这些信息可以在编译时或运行时被读取和使用。

相关文章:

C#:基本语法

写在前面 本人在实习过程需要用C#进行开发&#xff0c;但本人之前的技术栈是C方向&#xff0c;所以在菜鸟教程上速通了一下C#的基本语法&#xff0c;总的来说和C还是非常相似的。 1 关键字 using关键字&#xff1a;使用命名空间class&#xff1a;使用类 2 注释 /* 这个程序…...

Redisson 实现分布式锁

文章目录 Redisson 是什么Redisson 使用客户端模式单节点模式哨兵模式主从模式集群模式Spring Boot 整合 Redisson 中的锁Redisson 可重入锁Redisson 公平锁Redisson 联锁Redisson 读写锁Redisson Redlock Redisson 的看门狗机制RedLock 解决单体故障问题如何使用 RedLockMarti…...

VMware ESXi学习笔记

esxi网络模型&#xff1a; 物理网卡: 一般会有多个物理网卡&#xff0c;用于管理口和其他(vsan) 虚拟交换机&#xff1a;创建虚拟交换机时&#xff0c;会要求选择至少1个上行链路(物理网卡) 端口组&#xff1a;一般一个虚拟交换机会创建两个端口组&#xff0c;一个虚机使用&a…...

Python 函数(2)

2、函数 2.1、函数传递列表 将列表传递给函数后&#xff0c;函数就能直接访问其内容。 下列为一个实例&#xff1a;将一个名字列表传递给一个名为greet_users()的函数&#xff0c;这个函数将会向列表中的每一个元素执行相应的信息。 def greet_users(name):for name in name…...

c++文件的读写

平常我们在编完代码后&#xff0c;基本都是从键盘输入&#xff0c;从屏幕输出&#xff08;显示&#xff09;&#xff0c;但可不可以从其他地方输入输出呢&#xff1f; ………………………………………………………………………………………………………………… 其实可以&…...

春秋云境 | 文件上传 | CVE-2022-30887

目录 靶标介绍 开启靶场 上传一句话木马 蚁剑连接 找到 flag 靶标介绍 多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的是在药房和客户之间提供一套接口&#xff0c;客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库&#xff0…...

大模型+XDR!打开网络安全攻防演练新范式!

网络安全领域面临着日益复杂的挑战&#xff0c;外部攻击与内部安全威胁交织的双重压力。技术革新成为筑牢安全防线的关键&#xff0c;随着新一代技术的崛起&#xff0c;特别是大数据与人工智能的深度融合&#xff0c;引领着网络安全进入全新阶段。 通过构建网络安全大模型&…...

C语言----字符串

字符串 第一种定义 利用字符数组 双引号的方式定义字符串 char str1[4]"abc"; printf("%s\n",str1); 细节1: 在底层&#xff0c;实际存储的时候&#xff0c;c语言还是会帮我们把字符串"abc"转换成字符数组进行保存&#xff0c;并且在末尾还…...

ThreadLocal 详解(三)内存泄露原因,以及强弱引用

1、ThreadLocal内存泄漏 在Threadlocal的内部静态类中Entry将Threadlocal作为一个key&#xff0c;值作为value保存&#xff0c;他继承WeakReference&#xff0c;super(k)&#xff0c;代表了Threadlocal对象是一个弱引用&#xff1b; static class Entry extends WeakReference…...

【Android面试八股文】说一说Android开发模式之MVC、MVP、MVVM的区别?

文章目录 一、 MVC(Model-View-Controller)二、 MVP(Model-View-Presenter)三、MVVM(Model-View-ViewModel)四、示例代码4.1. MVC 示例4.2. MVP 示例4.3. MVVM 示例五、总结在Android开发中, MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-…...

多叉树的深度优先遍历(以电话号码的字母组合为例)

在我们的座机上&#xff0c;都有这种数字与字母对应的按键。 以此为例&#xff0c;讲解多叉树的深度优先遍历 问题 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同…...

【YashanDB数据库】PHP无法通过ODBC连接到数据库

【问题分类】驱动使用 【关键字】ODBC、驱动使用、PHP 【问题描述】应用使用php-fpmnginx架构&#xff0c;通过php的ODBC拓展连接YashanDB时出现报错&#xff1a; [unixODBC][Driver Manager]Cant open lib /home/yashandb_odbc/libyas_odbc.so: file not found但是在应用所…...

C++ | Leetcode C++题解之第326题3的幂

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPowerOfThree(int n) {return n > 0 && 1162261467 % n 0;} };...

Ubuntu20.4上搭建FFMPEG开发环境

编译ffmpeg命令如下: 1.安装yasm(ffmpeg里面有汇编语言的部分,所以需要安装一下yasm) wget 5http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar xvzf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install 2.安装nasm(2.13以上…...

谷粒商城实战笔记-144-性能压测-性能监控-堆内存与垃圾回收

文章目录 一&#xff0c;两种类型的应用1&#xff0c;CPU密集型应用示例&#xff1a;Apache Spark 2&#xff0c;IO密集型应用示例&#xff1a;MySQL 二&#xff0c;监控 我们通过压力测试对接口进行了性能评估&#xff0c;以确定其是否满足性能要求。 如果不符合&#xff0c;就…...

大模型综述

《Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond》论文阅读 模型架构 两种架构&#xff1a; encoder-decoder架构/encoder架构:T5/BERTdecoder架构:GPT4 特点LLMsencoder-decoderorencoder-onlyBERT-style训练:掩码语言模型类型&#xff1a;…...

Python 常用内置函数

目录 1、enumerate函数 1.1、for循环中使用 1.2、enumerate指定索引的起始值 1.3、enumerate在线程中的作用 2、Map 函数 2.1、map()函数可以传多个迭代器对象 3、lambda表达式&#xff08;匿名函数&#xff09; 示例 4、sort函数和sorted函数 4.1、sort()函数 4.2、…...

什么是大数据?

1. 大数据定义 大数据到底是什么&#xff1f; 大数据的定义是数据种类更多、数量更多、速度更快。这也被称为三个“V”。 简单来说&#xff0c;大数据是更大、更复杂的数据集&#xff0c;尤其是来自新数据源的数据集。这些数据集非常庞大&#xff0c;传统数据处理软件根本无…...

Linux 内核源码分析---资源分配及系统总线

资源管理 Linux提供通用的构架&#xff0c;用于在内存中构建数据结构。这些结构描述了系统中可用的资源&#xff0c;使得内核代码能够管理和分配资源。 其中关键的数据结构resource如下&#xff1a; 用于连接parent, child, sibling成员规则如下&#xff1a; 1、每个子结点只…...

C# POST请求 各种实现方法梳理

目录 1.首先是基础的参数 2.使用RestClient 3.使用封装库 4.使用微软原生库进行请求 5.使用HttpClient进行请求 C#代码中&#xff0c;实现Http/Https 中的POST请求&#xff0c;可以有很多种方式&#xff0c;下面就梳理下我常用的几种方式&#xff0c;给大家借鉴 1.首先…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

GeoServer发布PostgreSQL图层后WFS查询无主键字段

在使用 GeoServer&#xff08;版本 2.22.2&#xff09; 发布 PostgreSQL&#xff08;PostGIS&#xff09;中的表为地图服务时&#xff0c;常常会遇到一个小问题&#xff1a; WFS 查询中&#xff0c;主键字段&#xff08;如 id&#xff09;莫名其妙地消失了&#xff01; 即使你在…...

Docker、Wsl 打包迁移环境

电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 内核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…...