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

C#面:简述 var 和 dynamic

var 关键字:

  1. var 关键字是在编译时进行类型推断的。也就是说,编译器会根据变量的初始化表达式来确定变量的类型,并在编译时将其替换为实际的类型。
  2. var 关键字只能用于局部变量,不能用于字段、方法参数或返回类型。
  3. var 关键字声明的变量必须在声明时进行初始化,否则会导致编译错误。
  4. var 关键字声明的变量的类型是确定的,并且在编译时就已经确定了,后续不能改变。

dynamic 关键字:

  1. dynamic 关键字是在运行时进行类型推断的。也就是说,编译器不会对 dynamic 类型进行类型检查,而是将类型检查推迟到运行时。
  2. dynamic 关键字可以用于局部变量、字段、方法参数和返回类型。
  3. dynamic 关键字声明的变量可以在声明时不进行初始化,也可以在后续的代码中改变其类型。
  4. dynamic 关键字声明的变量的类型是不确定的,可以接受任何类型的构造器创建对象,包括静态类型的构造器。

总结一下,var 关键字是在编译时进行类型推断的,变量的类型在编译时就已经确定了,并且不能改变,而 dynamic 关键字是在运行时进行类型推断的,变量的类型在运行时确定,并且可以改变。

拓展:

尽管 dynamic 类型具有灵活性,但也有一些限制。以下是 dynamic 类型不支持的操作:

  1. 静态成员访问:dynamic 类型不能直接访问静态成员,因为静态成员是与类型本身相关联的。(因类型的具体类型在运行时才能确定)
  2. 扩展方法调用:dynamic 类型不能直接调用扩展方法。扩展方法是通过静态类定义的。(因类型的具体类型在运行时才能确定)
  3. 运算符重载:dynamic 类型不能直接使用运算符重载。运算符重载是在编译时进行的。(因类型的具体类型在运行时才能确定)
  4. 编译时类型检查:dynamic 类型不会在编译时进行类型检查,因此编译器无法捕获到一些类型错误。这也意味着在运行时可能会出现类型转换错误或方法不存在的异常。

相关文章:

C#面:简述 var 和 dynamic

var 关键字: var 关键字是在编译时进行类型推断的。也就是说,编译器会根据变量的初始化表达式来确定变量的类型,并在编译时将其替换为实际的类型。var 关键字只能用于局部变量,不能用于字段、方法参数或返回类型。var 关键字声明…...

S32 Design Studio PE工具配置DMA

工具配置 DMA位置跟设备不一样,在Referenced_components里面。 Configurations里面就默认配置就行 channels是比较重要的,一条信号传输用到一个通道。可以选择UART、ADC、CAN之类的,这里用在了SPI通讯里面。 生成代码 在 Generated_Code\dm…...

【Effective C++】36绝不重新定义继承而来的non-virtual 函数

例子如下: class B { public:void mf(); };class D : public B {};D x; // x是一个类型为D的对象 // 方式一 B* pB &x // 获得一个pB 指向 x pB->mf(); // 经由指针调用mf// 方式二 D* pD &x // 获得一个指针指向x pD->mf(); // 经由指针调用mf我…...

STM32-DMA数据转运

DMA进行转运的条件 1:开关控制,DMA_CMD必须使能2:传输计数器必须大于03:触发源必须有触发的信号...

Vue 3 + TypeScript 项目中全局挂载并使用工具函数

一、proxy方式 1.封装日期选择工具函数: 在untils文件夹下新建index.ts,并导出工具函数 /*** 获取不同类型日期* param:类型 dateVal: 是否指定*/ export function getSystemDate(param: any, dateVal: any) {let systemDate dateVal ? new Date(da…...

第二门课:改善深层神经网络<超参数调试、正则化及优化>-超参数调试、Batch正则化和程序框架

文章目录 1 调试处理2 为超参数选择合适的范围3 超参数调试的实践4 归一化网络的激活函数5 将Batch Norm拟合进神经网络6 Batch Norm为什么会奏效?7 测试时的Batch Norm8 SoftMax回归9 训练一个SoftMax分类器10 深度学习框架11 TensorFlow 1 调试处理 需要调试的参…...

漫谈微服务网关

一、什么是服务网关 服务网关 路由转发 过滤器 1、路由转发:接收一切外界请求,转发到后端的微服务上去; 2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过…...

进击的PostgreSQL

目录 前言 一、什么是PostgreSQL 1.PostgreSQL的定义 2.PostgreSQL功能和特性 2.1数据类型 2.2数据完整性 2.3并发性、性能 2.4可靠性、灾难恢复 2.5安全 2.6扩展 2.7国际化、文本搜索 二、部署PostgreSQL 1.下载与安装 2.配置数据库 3.配置远程访问 4.修改配置…...

本地gitlab-runner的创建与注册

引言 之前通过一些方式在本地创建runner,时而会出现一些未知的坑,所以写下本文记录runner可以无坑创建的方式。 以下注册runner到相应仓库的前提是已经在本地安装了gitlab-runner 具体安装方式见官网 本地gitlab-runner安装常用的指令 查看gitlab r…...

《UE5_C++多人TPS完整教程》学习笔记28 ——《P29 Mixamo 动画(Mixamo Animations)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P29 Mixamo动画(Mixamo Animations)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者…...

剑指offer力扣题集

剑指offer Krahets前辈整理的题解,这个博客为了方便自己刷题和复习,加油! 01. 数组中重复的数字 力扣链接 02. 二维数组中的查找 力扣链接 03. 替换空格 力扣链接 04. 从尾到头打印链表 力扣链接 05. 重建二叉树 力扣链接好难 -_-…...

【商业|数据科学主题会议推荐】2024年商业分析与数据科学国际学术会议(ICBADS 2024)

【商业|数据科学主题会议推荐】2024年商业分析与数据科学国际学术会议(ICBADS 2024) 征稿主题 (以下主题包括但不限于) 多媒体决策 决策理论与决策科学 数字市场设计与运营 降维 电子商务 道德决策 财务分析 群体决策与软件 医疗保…...

爬虫技术实战案例解析

目录 前言 案例背景 案例实现 案例总结 结语 前言 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊爬虫技术实战案例解析,希望大家能觉得实用! 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!&#x1…...

Git 使用笔记

基本操作: 初始化 (git init) 使用背景和作用: 在本地建立一个文件夹后,基于这个文件夹进行git 操作,赋予git操作本文件夹的权限 。查看当前文件夹状态(git status) 每次打开文件夹…...

python -- 语法与变量

你好, 我是木木, 目前正在做两件事   1. 沉淀自己的专业知识   2. 探索了解各种副业项目,同时将探索过程进行分享,帮助自己以及更多朋友找到副业, 做好副业 文末有惊喜 语法的简要说明 每种语言都有自己的语法,不管是自然语言(…...

24计算机考研调剂 | 太原科技大学

2024年太原科技大学 力学专业 接收研究生调剂通告 考研调剂招生信息 招生专业: 080100(力学) 01先进材料变形行为及力学性能 02 计算力学及其应用 03结构动力学与无损检测 04复合材料断裂理论与结构设计 补充内容 调剂考生基本要求 &…...

Leetcode 204. 计数质数 java题解

https://leetcode.cn/problems/count-primes/description/ 法一 class Solution {public int countPrimes(int n) {int count0;for(int i2;i<n;i){//判断i是否质数boolean ftrue;for(int j1;j*j<i;j){//因子if(j!1&&j!i&&(i%j0)){ffalse;break;}}if(f){…...

机器学习——终身学习

终身学习 AI不断学习新的任务&#xff0c;最终进化成天网控制人类终身学习&#xff08;LLL&#xff09;&#xff0c;持续学习&#xff0c;永不停止的学习&#xff0c;增量学习 用线上收集的资料不断的训练模型 问题就是对之前的任务进行遗忘&#xff0c;在之前的任务上表现不好…...

一次完整的 HTTP 请求所经历的步骤

1&#xff1a; DNS 解析(通过访问的域名找出其 IP 地址&#xff0c;递归搜索)。 2&#xff1a; HTTP 请求&#xff0c;当输入一个请求时&#xff0c;建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求&#xff0c;会略微有不同。 3&#xff1a; 客户端向服务器发…...

OpenGL学习笔记【1】——简介

一、OpenGL概念 OpenGL (Open Graphics Library&#xff0c;译名&#xff1a;开放式图形库开放式图形库) 是一种用于渲染 2D 和 3D 图形的跨语言、跨平台的编程接口(API)。 二、OpenGL跨语言 OpenGL 是一个 C 语言库&#xff0c;因此理解 C 语言&#xff08;或 C&#xff09;的…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...