C# 默认参数

2023-11-26

对于某人来说,这可能是一个非常简单的答案。我有一个方法Optional Parameter像这样;

public static Email From(string emailAddress, string name = "")
    {
        var email = new Email();
        email.Message.From = new MailAddress(emailAddress, name);
        return email;
    }

现在,我必须瞄准 .Net 3.5,我的理解是Optional Parameters是 .Net 4 的一部分。但是,我的项目已构建,并且我仔细检查了属性 - 应用页面指​​出 3.5 为目标框架。然后我在MSDN上发现一篇文章说这是VS2010中C#4的一个特性。 (MSDN 文章 -->命名参数和可选参数)

有人可以帮我澄清这一点吗? C#4 不需要 .Net4?可选参数实际上是哪些部分?

谢谢。


从 1.0 开始,CLR 就支持可选参数。像 VB.Net 这样的语言从一开始就一直在使用它们。虽然支持它们的第一个 C# 版本是 4.0,但它仍然可以为 2.0 CLR 生成有效代码,事实上也是如此。因此,如果您的目标是 3.5 CLR(或 2.0、3.0 等...),则可以在 2010 年使用默认参数

这种类型的支持不限于默认参数。许多新的 C# 功能可以在旧版本的框架上使用,因为它们不依赖于 CLR 更改。以下是 CLR 2.0 及更高版本支持的其他一些内容

  • 命名参数:添加了 C# 4.0
  • Lambda 表达式:添加了 C# 3.0
  • 自动属性:添加了 C# 3.0
  • 扩展方法:添加了C# 3.0
  • Co/Contra 方差:添加了 C# 4.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 默认参数 的相关文章

  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 如何在.NET Core上直接调用F#编译器?

    UPD 我想直接从 NET Core SDK 调用 F 编译器 即 fsc 我了解 dotnet build co 但当我只需要编译一个简单的问题时 即 fsc file fs 就足够的情况下 我不想涉及它们 我尝试在 NET Core S
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 单击 winform 应用程序中的按钮后如何将焦点返回到上次使用的控件?

    我正在开发一个 Windows 窗体应用程序 C 用户在窗体中输入数据 在编辑表单中的数据时 用户可以随时单击表单上的按钮之一来执行某些操作 默认情况下 焦点转到单击的按钮 因此用户必须重新单击他们想要编辑的控件才能继续修改表单上的数据 我
  • 如何填充列表间隔之间的元素

    我有一个这样的列表 list 1 np NaN np NaN 1 np NaN np NaN np NaN 0 np NaN 1 np NaN 0 1 np NaN 0 np NaN 1 np NaN 所以有一些间隔以1并结束于0 我怎样才
  • C# 属性在 main 上

    有人问我如何打印 line no 1 line no 2 line no 3 无需更改读取的主要方法 static void Main string args Console WriteLine line no 2 现在的一种方法是为控制台
  • Android setX() 和 setY() 行为怪异

    我正在尝试动态创建然后在 Android 活动中移动图像 但是 setX 和 setY 方法似乎无法正常工作 它在首次创建和放置图像时正确设置图像的位置 但任何更新图像的尝试都会导致图像被放置在错误的位置 例如 图像在以下代码上移动 Ima
  • cqlsh 连接错误:“ref() 不接受关键字参数”

    我已经尝试了所有措施这个帖子 and 卡桑德拉文档 我尝试运行所有版本的 Cassandra 包括 tarball 和 Debian 软件包中的最新版本 3 7 但执行时不断出现错误cqlsh Error 连接错误 无法连接到任何服务器 1
  • 使用变量作为键访问 Ruby 哈希

    如果我有以下 ruby 哈希 environments testing gt 11 22 33 44 production gt 55 66 77 88 我如何访问上述哈希的部分内容 下面的例子说明了我想要实现的目标 current env
  • Discord 机器人 - “属性错误:‘NoneType’对象没有属性‘strip’。

    我是一名新编码员 我一直在关注tutorial关于如何使用下面的代码创建一个不和谐的机器人 实际上已经直接从教程中复制了代码 并且我创建了一个 env 文件来存储我的 AuthToken 每次运行代码时 我都会收到上述代码下方的错误 有小费
  • 未找到 Android Studio Gradle DSL 方法:“android()”--错误(17,0)

    我尝试在 Android Studio 中运行我的项目 但出现以下错误 我跟踪了许多消息来源只是为了让它运行并最终来到这里 但不知道还能做什么 我该如何配置这个项目来运行 构建 gradle Top level build file whe
  • gdb 通过走帧指针进行回溯

    有时会出现一些小的堆栈损坏 导致 gdb 无法执行 回溯 我创建了以下 gdb 宏 x86 64 可以轻松地使其适用于 x86 该宏取决于关闭 omit frame pointer 即 fno omit frame pointer 并向我展
  • Python拒绝多次迭代文件中的行[重复]

    这个问题在这里已经有答案了 我正在编写一个程序 需要我多次迭代文件的每一行 loops 0 file open somefile txt while loops lt 5 for line in file print line loops
  • 使用 php 更改 css 值

    如何更改在我的主页上从管理区域显示一些文本的 div 的 css 我希望当我在插件管理页面中输入颜色代码时 该代码会在 css 文件中更新 这是很平常的事 却无法把握 这是我的 div 的 css div background 0000 这
  • 如何在 PHP 中使用 Graph API 使用 message_tags 字段发布消息

    我想使用 Graph API 发布带有 message tags 的消息 我确认消息仅在 PHP 中发布 但不适用于 message tags 这是示例代码
  • javascript - 为什么有同步和异步模块的规范?

    我刚刚读完这篇文章article在 Javascript 模块上 我可以理解CommonJS模块是同步加载的 而AMD模块是异步加载的 我不明白的是我怎样才能模块变成神奇地同步如果我以 CommonJS 格式编写它 或者如果我以 Commo
  • 角度表单验证以验证电话号码

    我正在尝试使用角度中的正则表达式来验证电话号码 HTML 内容 div class form group row div
  • SetStdHandle 对 cout/printf 没有影响

    标题说明了一切 当我运行以下代码时 HANDLE hOut GetStdHandle STD OUTPUT HANDLE HANDLE hFile CreateFile TEXT Foo txt GENERIC WRITE FILE REA
  • Perl 中的标量上下文和列表上下文有什么区别?

    Perl 中的标量上下文和列表上下文有什么区别 这在其他语言 例如 Java 或 Javascript 中是否有相似之处 Perl 中的各种运算符都是上下文相关的 并且在列表和标量上下文中产生不同的结果 例如 my array 1 2 4
  • 强制对 js 或 axios 使用不同的用户代理

    我通过 axios get 和 post 请求路由所有请求 我正在测试一些 iframe 它们检测用户代理 并根据它是什么代理 它们更改有效负载和样式等 例如 如果我通过切换设备工具栏并设置为 iphone 在开发工具上更改它 则所有请求都
  • XMLHttpRequest 从远程主机获取 HTTP 响应

    为什么下面的代码基于 Mozilla 示例不起作用 尝试使用 Firefox 3 5 7 和 Chrome
  • 如何查看除特定控件之外的所有 FormControls ValueChanges?

    我有一个表单 每当控制输入值发生变化时就会进行计算 这是我的form group好像 form group this fb group control1 control2 control3 control10 我可以通过以下方式检测所有控件
  • C# 默认参数

    对于某人来说 这可能是一个非常简单的答案 我有一个方法Optional Parameter像这样 public static Email From string emailAddress string name var email new