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

实习日记-C#

数据类型

字符串常量

string a = "hello, world";                  // hello, world
string b = @"hello, world";               // hello, world
string c = "hello \t world";               // hello     world
string d = @"hello \t world";               // hello \t world
string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt
string i = "one\r\ntwo\r\nthree";
string j = @"one

访问修饰符

定义一个类成员的范围和可见性

public:所有对象都可以访问;
private:对象本身在对象内部可以访问;
protected:只有该类对象及其子类对象可以访问
internal:同一个程序集的对象可以访问;
protected internal:访问限于当前程序集或派生自包含类的类型。

按引用传递参数

引用参数是一个对变量的内存位置的引用。ref关键字声明引用参数。

using System;
namespace CalculatorApplication
{class NumberManipulator{public void swap(ref int x, ref int y){int temp;temp = x; /* 保存 x 的值 */x = y;    /* 把 y 赋值给 x */y = temp; /* 把 temp 赋值给 y */}static void Main(string[] args){NumberManipulator n = new NumberManipulator();/* 局部变量定义 */int a = 100;int b = 200;Console.WriteLine("在交换之前,a 的值: {0}", a);Console.WriteLine("在交换之前,b 的值: {0}", b);/* 调用函数来交换值 */n.swap(ref a, ref b);Console.WriteLine("在交换之后,a 的值: {0}", a);Console.WriteLine("在交换之后,b 的值: {0}", b);Console.ReadLine();}}
}

C#可空类型

C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。

例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值。类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null。

在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。

using System;
namespace CalculatorApplication
{class NullablesAtShow{static void Main(string[] args){int? num1 = null;int? num2 = 45;double? num3 = new double?();double? num4 = 3.14157;bool? boolval = new bool?();// 显示值Console.WriteLine("显示可空类型的值: {0}, {1}, {2}, {3}",num1, num2, num3, num4);Console.WriteLine("一个可空的布尔值: {0}", boolval);Console.ReadLine();}}
}

输出

显示可空类型的值: , 45,  , 3.14157
一个可空的布尔值:

C#中的构造函数

using System;
namespace LineApplication
{class Line{private double length;   // 线条的长度public Line(){Console.WriteLine("对象已创建");}/*public Line(double len)  // 参数化构造函数{Console.WriteLine("对象已创建,length = {0}", len);length = len;}*/public void setLength( double len ){length = len;}public double getLength(){return length;}static void Main(string[] args){Line line = new Line();    // 设置线条长度line.setLength(6.0);Console.WriteLine("线条的长度: {0}", line.getLength());Console.ReadKey();}}
}对象已创建
线条的长度: 6

C#中的析构函数

格式:~ 类名()
{}
调用时间:结束程序(比如关闭文件,释放内存等)之前释放资源。析构函数不能继承或重载

在这里插入代码片

C#类的静态成员

static关键字把类成员定义为静态的。当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。
关键字static意味着类中只有一个该成员的实例

using System;
namespace StaticVarApplication
{class StaticVar{public static int num;public void count(){num++;}public int getNum(){return num;}}class StaticTester{static void Main(string[] args){StaticVar s1 = new StaticVar();StaticVar s2 = new StaticVar();s1.count();s1.count();s1.count();s2.count();s2.count();s2.count();        Console.WriteLine("s1 的变量 num: {0}", s1.getNum());Console.WriteLine("s2 的变量 num: {0}", s2.getNum());Console.ReadKey();}}
}

执行结果

s1 的变量 num: 6
s2 的变量 num: 6

static修饰的成员函数,只能访问静态变量,且静态函数再对象被创建之前就已经存在

using System;
namespace StaticVarApplication
{class StaticVar{public static int num;public void count(){num++;}public static int getNum(){return num;}}class StaticTester{static void Main(string[] args){StaticVar s = new StaticVar();s.count();s.count();s.count();                  Console.WriteLine("变量 num: {0}", StaticVar.getNum());Console.ReadKey();}}
}

结果:

变量 num: 3

C#继承

新类称为派生类,被继承的类称为基类
创建派生类的语法如下:
<访问修饰符> class <基类>
{

}
class <派生类> : <基类>
{

}

 class Shape{public void setWidth(int w){width = w;}public void setHeight(int h){height = h;}protected int width;protected int height;}// 派生类class Rectangle: Shape{public int getArea(){return (width * height);}}class RectangleTester{static void Main(string[] args){Rectangle Rect = new Rectangle();Rect.setWidth(5);Rect.setHeight(7);// 打印对象的面积Console.WriteLine("总面积: {0}",  Rect.getArea());Console.ReadKey();}}

多重继承:一个类可以从多个父类继承行为与特征
C#不支持多重继承,但是可以使用接口来实现多重继承

using System;
namespace InheritanceApplication
{class Shape{public void setWidth(int w){width = w;}public void setHeight(int h){height = h;}protected int width;protected int height;}// 基类 PaintCostpublic interface PaintCost{int getCost(int area);}// 派生类class Rectangle : Shape, PaintCost{public int getArea(){return (width * height);}public int getCost(int area){return area * 70;}}class RectangleTester{static void Main(string[] args){Rectangle Rect = new Rectangle();int area;Rect.setWidth(5);Rect.setHeight(7);area = Rect.getArea();// 打印对象的面积Console.WriteLine("总面积: {0}",  Rect.getArea());Console.WriteLine("油漆总成本: ${0}" , Rect.getCost(area));Console.ReadKey();}}
}

C#多态性

多态是同一个行为具有多个不同表现形式或形态的能力
“一个接口,多个功能”
多态就是同一个接口,使用不同的实例而执行不同操作

静态多态性

  • 函数重载
  • 运算符重载

函数重载

using System;
namespace PolymorphismApplication
{public class TestData  {  public int Add(int a, int b, int c)  {  return a + b + c;  }  public int Add(int a, int b)  {  return a + b;  }  }  class Program  {  static void Main(string[] args)  {  TestData dataClass = new TestData();int add1 = dataClass.Add(1, 2);  int add2 = dataClass.Add(1, 2, 3);Console.WriteLine("add1 :" + add1);Console.WriteLine("add2 :" + add2);  }  }  
}
 class Printdata{void print(int i){Console.WriteLine("输出整型: {0}", i );}void print(double f){Console.WriteLine("输出浮点型: {0}" , f);}void print(string s){Console.WriteLine("输出字符串: {0}", s);}static void Main(string[] args){Printdata p = new Printdata();// 调用 print 来打印整数p.print(1);// 调用 print 来打印浮点数p.print(1.23);// 调用 print 来打印字符串p.print("Hello Runoob");Console.ReadKey();}}

动态多态性

使用关键字abstract创建抽象类,用于提供接口的部分类的实现。抽象类包含抽象方法,抽象方法可被派生类实现,派生类具有更专业的技能

相关文章:

实习日记-C#

数据类型 字符串常量 string a "hello, world"; // hello, world string b "hello, world"; // hello, world string c "hello \t world"; // hello world string d "hello \t wor…...

Tech Lead如何引导团队成员解决问题?

作为一个开发团队的Tech Lead&#xff0c;当团队成员向你寻求帮助时&#xff0c;你有没有说过下面这些话&#xff1f; 你别管了&#xff0c;我来解决这个问题你只要。。。就行了你先做其他的吧&#xff0c;我研究一下&#xff0c;然后告诉你怎么做 当我们说这些话时&#xff…...

07--组件

一、小程序组件分类微信团队为开发者提供了一系列基础组件&#xff0c;开发者可以通过组合这些基础组件进行快速开发。小程序中的组件也是非常丰富的&#xff0c;开发者可以基于组件快速搭建出漂亮的页面结构。小程序中的组件其实相当于网页中的HTML标签&#xff0c;只不过标签…...

怎么做好一个完整的项目复盘

复盘&#xff0c;是运营必不可少的能力&#xff0c;小到一次买菜的经历&#xff0c;大到百亿千亿的投资项目&#xff0c;都可以通过复盘来总结规律、提升水平。简单说来&#xff0c;复盘可以达到的效果有两条&#xff1a;优化弱项&#xff0c;强化强项明确自己的价值&#xff0…...

浅谈一下mysql8.0与5.7的字符集

修改字符集 修改步骤 在MySQL8.0版本之前&#xff0c;默认字符集为1atin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为ut8字符集。如果遗忘修改默认的编码&#xff0c;就会出现乱码的问题。从MySQL8.0开始&#xff0c;数据库的默认编码将改…...

paddle推理部署(cpu)

我没按照官方文档去做&#xff0c;吐槽一下&#xff0c;官方文档有点混乱。。一、概述总结起来&#xff0c;就是用c示例代码&#xff0c;用一个模型做推理。二、示例代码下载https://www.paddlepaddle.org.cn/paddle/paddleinferencehttps://github.com/PaddlePaddle/Paddle-In…...

想开发IM集群?先搞懂什么是RPC!

即时通讯网官方技术群和社区里&#xff0c;经常有开发者在纠结怎么开发IM集群&#xff0c;虽然真正的使用人数&#xff0c;可能用个人电脑单机都能支撑。你也许会说&#xff0c;明明不需要用到IM集群&#xff0c;干吗要自找麻烦&#xff1f;答曰&#xff1a;“老板说这个得有&a…...

案例13-前端对localStorage的使用分析

一&#xff1a;背景介绍 前端在调用后端接口获取某一个人的评论次数、获赞次数、回复次数。调用之后判断后端返回过来的值。如果返回回来的值是0的话&#xff0c;从缓存中获取对应的值&#xff0c;如果从缓存中获取的评论次数为空那么其他两个的次数也为0。 二&#xff1a;思路…...

CNNIC第51次中国互联网络发展状况统计报告用户规模变化发布、解读与白杨SEO看法

一、第51次《中国互联网络发展状况统计报告》发布 3月2日&#xff0c;中国互联网络信息中心&#xff08;简称CNNIC&#xff09;在京发布第51次《中国互联网络发展状况统计报告》。《报告》显示&#xff0c;截至2022年12月&#xff0c;我国网民规模达10.67亿&#xff0c;较2021…...

【数据结构】单链表的实现

本篇主要总结单链表是如何实现的&#xff0c;数据结构是如何管理数据的&#xff0c;详细的介绍每一步是如何实现以及各种注意事项。&#x1f680;1.单链表的实现&#x1f680;&#x1f36d;1.1单链表的尾插&#x1f36d;1.2单链表的头插&#x1f36d;1.3单链表的打印&#x1f3…...

从0到1做产品!产品设计的6个步骤

相信不少产品经理在刚入行时&#xff0c;都遇到过这样的情况&#xff1a; 接到需求后不知所措&#xff0c;然后下意识地照着竞品开始盲目地画原型。 其实&#xff0c;这样的设计过程不仅缺乏逻辑性&#xff0c;在后续阶段也很容易出现各种问题。 在此&#xff0c;跟大家分享一下…...

ESP32遥控器软硬件设计

一. 前言 做智能车 或者 四轴飞控怎么能少得了遥控器呢&#xff01;在这里给大家分享一个简单的基于ESP32遥控器的设计&#xff0c;包括软硬件以及3D外壳。 二. 硬件设计 1. 功能介绍 遥控器嘛&#xff0c;通信方式是最重要的&#xff0c;本设计支持 WIFI、蓝牙 和 2.4G&…...

vue-template-admin的keep-alive缓存与移除缓存

一&#xff0c;场景 A页面是表单页面&#xff0c;填写后需要跳转B页面。如果B页面不操作返回的话&#xff0c;应该能还原A页面的内容&#xff0c;而如果B页面点击提交&#xff0c;再回到A页面的时候&#xff0c;应该清除缓存。 二&#xff0c;实现方法 A页面要缓存数据&…...

【人工智能 AI】机器学习快速入门教程(Google)

目录 机器学习术语 标签 特性 示例 模型 回归与分类 深入了解机器学习&#xff1a;线性回归 深入了解机器学习&#xff1a;训练和损失 平方损失函数&#xff1a;一种常用的损失函数 机器学习术语 预计用时&#xff1a;8 分钟 什么是&#xff08;监督式&#xff…...

适配器模式

概览 适配器模式是一种结构型设计模式&#xff0c;用于将一个类的接口转换为客户端所期望的另一种接口。通常情况下&#xff0c;这种转换是由一个适配器类完成的&#xff0c;适配器类包装了原始类&#xff0c;并实现了客户端所期望的接口。这种模式非常适用于在不修改现有代码…...

00后跨专业学软件测试,斩获8.5K高薪逆袭职场

我想说的第一句&#xff1a;既然有梦想&#xff0c;就应该去拼搏还记得&#xff0c;我大学毕业前&#xff0c;就已经暗下决心到xxx培训机构接受培训。那个时候&#xff0c;没有任何海同公司的人主动找我或者联系过我&#xff0c;我是自己在网上发现了xxxx培训机构的&#xff01…...

数据结构和算法学习

文章目录精通一个领域切题四件套算法算法的五个条件流程图数据结构数据与信息数据信息数据结构和算法数据结构算法时间复杂度空间复杂度数组 Array优点缺点数组和链表的区别时间复杂度链表 Linked List优点缺点时间复杂度单向链表双向链表循环链表双向循环链表堆栈 Stack队列 Q…...

剑指 Offer II 012. 左右两边子数组的和相等

题目链接 剑指 Offer II 012. 左右两边子数组的和相等 easy 题目描述 给你一个整数数组 nums&#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那…...

Java货物摆放

题目描述 小蓝有一个超大的仓库&#xff0c;可以摆放很多货物。 现在&#xff0c;小蓝有 &#xfffd; n 箱货物要摆放在仓库&#xff0c;每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向&#xff0c;每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所…...

计算机求解满足三角形各边数字之和相等的数字填充

圆圈处不重复的填入1至9&#xff0c;使得每条边的四个数字相加的总和相等。 求解思路&#xff1a; 数组中存放1到9的数字&#xff0c;每次随机交换两个数字&#xff0c;构建出新的数字组合&#xff0c;计算这个数字组合是否符合要求。 #include <stdio.h> #include <…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

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

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

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...