什么是C#

news2024/12/26 23:01:07

C#是一种面向对象的语言与c语言不同 C语言是面向过程的编程

C#运行于.NETFramework和.NETCore之上的高级语言

C#是由C和C++衍生而来的一种语言

在C#中不建议使用指针

什么叫面向对象

是一种编程范式,它将现实世界中的事物抽象为对象,并通过对象之间的交互来设计和构建软件系统。面向对象的核心思想是将数据和处理数据的方法结合在一起,形成一个对象。面向对象编程(Object-Oriented Programming,简称OOP)是实现面向对象概念的编程技术。

面向对象的主要特点包括:

  1. 封装(Encapsulation):将对象的数据(属性)和行为(方法)封装在一起,隐藏内部的实现细节,只通过公共接口与外部交互。

  2. 继承(Inheritance):允许新创建的类(子类)继承现有类(父类)的属性和方法,实现代码的复用和层次化。

  3. 多态(Polymorphism):允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。多态性可以通过方法重载(Overloading)和方法重写(Overriding)实现。

  4. 抽象(Abstraction):通过抽象类或接口,定义一组相关的操作,但不具体实现它们,让子类根据具体情况来实现这些操作。

面向对象编程的优势包括:

  • 代码复用:通过继承和多态,可以减少代码的重复编写,提高开发效率。

  • 模块化:每个对象都是独立的模块,易于管理和维护。

  • 易于扩展:新功能可以通过添加新的对象或类来实现,而不影响现有的代码。

  • 易于维护:封装和模块化使得代码更易于理解和维护。

什么是.NETFramework

.NET Framework 是一个由微软开发的软件开发平台,提供了一系列预设计的代码,用于常见程序任务。它是一个全面的、可扩展的平台,用于构建和运行 Windows 应用程序和网络服务。.NET Framework 包括以下主要组件:

  1. 公共语言运行时(CLR):CLR 是 .NET Framework 的核心,它是一个代码执行引擎,提供内存管理、异常处理、安全性、垃圾回收等服务。CLR 允许不同的编程语言共享 .NET Framework 提供的公共类型系统和运行时服务。

  2. 基类库(BCL):BCL 是一组丰富的类库,为开发者提供了大量的工具和功能,包括数据访问、用户界面、文件和网络操作等。BCL 支持多种编程语言,如 C#、VB.NET 和 F#。

  3. ASP.NET:一个用于构建 Web 应用程序和网络服务的框架,提供了一系列工具和控件来简化 Web 应用程序的开发。

  4. Windows 窗体(WinForms):用于构建 Windows 桌面应用程序的框架,提供了一系列控件和组件来创建图形用户界面(GUI)。

  5. Windows Presentation Foundation (WPF):一个用于创建丰富客户端应用程序的 UI 框架,支持高级图形、动画、样式和数据绑定。

  6. ADO.NET:提供数据访问功能,允许开发者与数据库交互。

  7. Entity Framework:一个对象关系映射(ORM)框架,简化了数据库访问和数据模型的创建。

  8. WCF(Windows Communication Foundation):用于构建服务导向的应用程序,支持多种通信协议。

  9. WF(Windows Workflow Foundation):用于构建工作流应用程序的框架。

  10. .NET 配置系统:提供应用程序配置和资源管理功能。

什么是.NET

为C#提供一个写代码的平台

错误列表

在错位列表中 可以查看错误的代码

解决方案就是一个大的文件夹 然后在他的下面有很多小的文件夹

注意 C#中严格区分大小写

C# 中的每一句话都是由一个分号结束 就算什么也不写 之直接用分号 也是一句话 ;

注意 在C#中 文件名可以和类名不一样

变量的声明 不能用关键字

C#中的注释

  1. 单行注释用//

  2. 多行注释用/* */

单行注释的快捷键

ctrl+k 再加上 ctrl+C 用来注释

ctrl+k 再加上 CTRL+U 用来取消注释

文档注释 ///

文档注释 可以注释方法 还可以注释类

文档注释方法的时候 在调用方法的时候给提示

浮点型 包含小数和整数类型

如果赋值一个小数 不见任何后缀 系统默认为double类型

在变量 s=null 和变量 s="" 有什么区别 等于null是什么也没有放 等于""时 放了内容 只不过内容为空

C#中的位或和位与

在C#编程语言中,|& 是两个不同的位运算符,它们分别代表按位或(bitwise OR)和按位与(bitwise AND)。下面是这两个运算符的区别:

  1. 按位或(Bitwise OR) - |

    • 当使用 | 运算符时,它会对两个数的每个位进行比较。如果两个相应的位中至少有一个为1,则结果位就设置为1。

    • 例如,5 | 3 的二进制表示分别为 101011,进行按位或操作后,结果为 111,即十进制的7。

  2. 按位与(Bitwise AND) - &

    • 当使用 & 运算符时,它同样会对两个数的每个位进行比较。只有当两个相应的位都是1时,结果位才设置为1。

    • 例如,5 & 3 的二进制表示分别为 101011,进行按位与操作后,结果为 001,即十进制的1。

这里是一个简单的例子,展示这两个运算符的用法:

int a = 5; // 二进制表示: 0101
int b = 3; // 二进制表示: 0011
​
int orResult = a | b; // 结果: 7, 二进制表示: 0111
int andResult = a & b; // 结果: 1, 二进制表示: 0001

关于switch语句的写法

int a = 3;
switch (a)
{
    case 1:
        Console.WriteLine("1");
        break;
    case 2:
        Console.WriteLine("2");
        break;
    case 3:
        Console.WriteLine("3");
        break;
    case 4:
        Console.WriteLine("4");
        break;
}

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

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

相关文章

田地行走-美团2023笔试(codefun2000)

题目链接 田地行走-美团2023笔试(codefun2000) 题目内容 塔子哥是一个农民,他有一片 nm 大小的田地,共 n 行 m 列,其中行和列都用从 1 开始的整数编号,田地中有 k 个格子中埋有土豆。我们记第 a 行第 b 列的格子为 (a,b) 。塔子哥…

JAVA:常用的队列指南

1、简述 在计算机科学中,队列是一种常见的线性数据结构,它遵循先进先出(FIFO,First In First Out)的原则。队列在各种应用中广泛使用,例如任务调度、消息队列和宽度优先搜索等。在 Java 中,队列…

android perfetto使用技巧梳理

1 抓取方法 根据不同的配置参数,会显示不同的功能。 比如有的trace文件就无法显示线程状态信息,有的无法显示锁依赖信息等等,要看你的参数,我这个是很全的,基本够了,如果还想添加,可以命令行看…

我与OceanBase|一位DBA老兵的国产数据库探索之旅

本文作者:尚雷,有超过十年的工作经验,目前就职于南京一家上市互联网企业,担任DBA。Oracle 11g OCM,Oracle及PG的 ACE认证,并有AWS及国产知名数据库等多项认证。他热衷于技术交流与分享,爱交友&a…

Apache AGE 安装部署

AGE概述 概述 我们可以通过源码安装、拉取docker镜像运行、直接使用公有云三种方式中的任意一种来使用Apache AGE 获取 AGE 发布版本 可以在 https://github.com/apache/age/releases 找到发布版本和发布说明。 源代码 源代码可以在 https://github.com/apache/age 找到…

非参数检测5——双输入检测系统

在很多情况下,信号常常存在于两个带有独立噪声的信道中。所以很有必要研究双输入系统。双输入系统广泛应用于无线电天文学、水下声波检测和地球物理学等领域。

【ffmpeg系列一】源码构建,ubuntu22与win10下的过程对比。

文章目录 背景ubuntu22结论 win10过程 对比结论 背景 顺手编译个ffmpeg试试,看看不同平台下谁的配置比较繁琐。 先让gpt给出个教程: ubuntu22 使用elementary-os7.1构建,看看有几个坑要踩。 错误1: 依赖libavresample-dev未…

源码层面学习动态代理

前言 在Java中,动态代理主要分为CGLIB动态代理和JDK动态代理,我们从Hutool的源码也可一窥这两者的使用方式和区别; CGLIB动态代理 JDK动态代理 使用场景 CglibInterceptor和JdkInterceptor都是Hutool提供的代理工具,用于在运行时…

214.贪心算法:K次取反后最大化的数组和(力扣)

class Solution { public:int largestSumAfterKNegations(vector<int>& nums, int k) {int sum 0;// 进行k次取反操作while (k > 0){// 对数组进行排序sort(nums.begin(), nums.end());// 将最小的元素取反nums[0] -nums[0];// 减少k的值k--;}// 计算数组的总和…

12 - matlab m_map地学绘图工具基础函数 - 在地图上绘制矢量场m_vec函数和绘制风羽图的m_windbarb函数

12 - matlab m_map地学绘图工具基础函数 - 在地图上绘制矢量场函数m_vec和绘制风羽图的函数m_windbarb 0. 引言1. 关于m_vec2. 关于m_windbarb3. 总结 0. 引言 本篇介绍下m_map中绘制矢量场的函数&#xff08;m_vec&#xff09;和地图上绘制风羽图的函数m_windbarb。 1. 关于m…

语言模型的进化:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是一个充满挑战和机遇的领域。随着技术的发展&#xff0c;我们见证了从传统规则到统计机器学习&#xff0c;再到深度学习和预训练模型的演进。如今&#xff0c;我们站在了大型语言模型&#xff…

Unity扩展 Text支持超链接文本

重点提示&#xff1a;当前的文本扩展支持多个超链接&#xff0c;支持修改超链接规则和支持修改超链接颜色。 近期在邮件文本中用到了超链接。最初是在邮件窗口中新加一个按钮用来超链接跳转&#xff0c;之后发现效果表现不如直接在文本中添加&#xff0c;后经过几个小时的资料…

STM32中的DMA:解锁高效数据传输的秘密武器(内附实例)

目录 引言 理解DMA&#xff1a;数据的高效搬运工 DMA的主要特性 多优先级请求 事件标志 数据对齐 多样化的数据传输路径 广泛的数据源与目标 最大数据长度 DMA寄存器详解 增量与循环模式 DMA中断机制 ​编辑 小实验&#xff1a;DMA-ADC串口发送 引言 在现代嵌入…

SpringCloudAlibaba基础五 Nacos配置中心

一 Nacos配置中心介绍 官方文档&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config Nacos 提供用于存储配置和其他元数据的 key/value 存储&#xff0c;为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos C…

集成sa-token前后端分离部署配置corsFliter解决跨域失效的真正原因

文章目录 1.前言2.问题复现3.解决方法3.1 方式一&#xff1a;后端修改CorsFilter源码3.2 方式二&#xff1a;前端禁用或移除浏览器referrer-policy引用者策略 4.总结 1.前言 缘由请参看下面这篇文章&#xff1a;sa-token前后端分离解决跨域的正确姿势 https://mp.weixin.qq.co…

气象观测站应该怎么选?

在气候变化日益严峻的今天&#xff0c;气象观测站的重要性不言而喻。它们不仅为气象部门提供宝贵的数据支持&#xff0c;还直接关系到农业生产、交通运输、城市规划等多个领域的决策。 在选择气象观测站时&#xff0c;首先要明确自己的功能需求。例如&#xff0c;是用于学术研究…

每日一练全新考试模式解锁|考试升级

&#x1f64b;频繁有小伙伴咨询&#xff1a;我想举办一场历时一个月的答题活动&#xff0c;学生可以每天打开答题&#xff0c;活动完结后可以导出每天的答题成绩 此前我们都会让小伙伴创建30场考试&#xff0c;然后使用批量分享功能组合起来&#xff0c;对外分享一个链接就可以…

类与对象2 3 十十一 杂烩

目录 组合类 作用域 static friend 常对象常成员函数 常引用 对象指针&#xff08;指向对象&#xff09; string 组合类 类的组合/聚合&#xff1a;将已有的类的对象作为新的类的成员。 组合类初始化&#xff1a;内嵌对象成员初始化 普通数据成员初始化。 类必须先…

24下软考《系统规划与管理师》,一个超好背的核心知识点几页纸!

距离下半年软考考试的时间越来越近了&#xff0c;想要备考《系统规划与管理师》的小伙伴们趁着这两周赶紧准备起来&#xff0c;虽说系规相对较好考&#xff0c;但作为高级科目&#xff0c;它要记得东西还是不少的。 今天给大家整理了——系统规划与管理师考前几页纸&#xff0c…

C++语言相关的常见面试题目(二)

1.vector底层实现原理 以下是 std::vector 的一般底层实现原理&#xff1a; 内存分配&#xff1a;当创建一个 std::vector 对象时&#xff0c;会分配一块初始大小的连续内存空间来存储元素。这个大小通常会随着 push_back() 操作而动态增加。 容量和大小&#xff1a;std::vec…