当前位置: 首页 > 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.首先…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...