C# 参数明显的编译器错误(C# 5.0)[关闭]

2024-04-26

这是一个后续thread https://stackoverflow.com/questions/9685259/c-sharp-params-is-there-a-way-to-distingish-myfunc1-2-3-from-myfuncnew-int我以为昨天就解决了。昨天我的代码在以下情况下遇到了问题:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        class Bar
        {
            int v;

            public Bar(int v) { this.v = v; }
            public override string ToString() { return v.ToString(); }
        }

        static void Main(string[] args)
        {
            Foo(1, 2, 3);
            Foo(new int[] { 1, 2, 3 });
            Foo(new Bar(1), new Bar(2), new Bar(3));
            Foo(new Bar[] { new Bar(1), new Bar(2), new Bar(3) });
            System.Threading.Thread.Sleep(20000);
        }

        static void Foo(params object[] objs)
        {
            Console.WriteLine("New call to Foo: ");
            foreach(object o in objs)
                Console.WriteLine("Type = " + o.GetType() + ", value = "+o.ToString());
        }
    }
}

如果运行此命令,您会发现上次调用 Foo 时出现问题。参数是向量的事实已“丢失”。

那么...有人知道如何报告 C# 编译器错误吗?或者这会被视为反射错误吗?

(真是松了一口气:我很沮丧地认为我在这里浪费了时间,因为我自己的错误。事实上,这毕竟是一个 C# 错误,我被证明是正确的!我们多久会看到实际的 C# 编译器错误这些天?不常见...)


The 这一切是如何进行的,这一点非常明确。 7.5.3.1 表示如果一个函数params可以以正常形式应用(忽略params关键字)或扩展形式(使用params关键字),那么正常形式获胜。

假设Foo被宣布为Foo(params object[] args),然后调用Foo(new Foobar[] {new Foobar(1), new Foobar(2), new Foobar(3)) });适用于正常形式,因为Foobar[]可以隐式转换为object[](6.1.6 第 5 条)。因此,使用标准形式而忽略扩展形式。

(我假设 C# 5.0 没有改变这部分语言。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 参数明显的编译器错误(C# 5.0)[关闭] 的相关文章

  • 具有不同大小结构的结构数组的 malloc()

    如果每个结构都包含一个大小不同的字符串数组 那么如何正确地 malloc 一个结构数组 因此每个结构可能有不同的大小 并且不可能 realloc 结构体数量 sizeof 结构体名称 after malloc 初始大小 sizeof 结构名
  • clang 格式换行符在错误的位置

    给出以下代码行 get abc manager get platform status abc platform status sw update status fill update status actions allowed stat
  • 在 VS2017 下使用 Conan 和 CMake 项目进行依赖管理

    我正在尝试使用 CMake 与 VS2017 集成为 C 设置一个开发环境 以便在 Linux x64 下进行编译 为了更好地管理依赖关系 我选择使用 Conan 但我对这个软件还很陌生 我想知道让 VS2017 识别项目依赖关系的最佳方法
  • 内联函数/方法

    声明 内联函数必须在调用之前定义 这个说法正确吗 EDIT 该问题最初是德语 内联功能穆森 弗 伊赫雷姆 奥夫鲁夫定义 sein 也许它对任何人都有帮助 是的 它是正确的 但只是部分正确 它可能正确地重新构建如下 内联函数必须在每个翻译单位
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • 如何尝试/捕获所有异常

    我正在完成由其他人启动的 UWP 应用程序 该应用程序经常崩溃 我总是陷入困境应用程序 at if global System Diagnostics Debugger IsAttached global System Diagnostic
  • C# 正则表达式用于查找 中具有特定结尾的链接

    我需要一个正则表达式模式来查找字符串 带有 HTML 代码 中的链接 以获取文件结尾如 gif 或 png 的链接 示例字符串 a href site com folder picture png target blank picture
  • mprotect 之后 malloc 导致分段错误

    在使用 mprotect 保护内存区域后第一次调用 malloc 时 我遇到分段错误 这是执行内存分配和保护的代码片段 define PAGESIZE 4096 void paalloc int size Allocates and ali
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • libxml2 xmlChar * 到 std::wstring

    libxml2似乎将所有字符串存储在 UTF 8 中 如xmlChar xmlChar This is a basic byte in an UTF 8 encoded string It s unsigned allowing to pi
  • 预处理后解析 C++ 源文件

    我正在尝试分析c 使用我定制的解析器的文件 写在c 在开始解析之前 我想摆脱所有 define 我希望源文件在预处理后可以编译 所以最好的方法是运行C Preprocessor在文件上 cpp myfile cpp temp cpp or
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • C++11 动态线程池

    最近 我一直在尝试寻找一个用于线程并发任务的库 理想情况下 是一个在线程上调用函数的简单接口 任何时候都有 n 个线程 有些线程比其他线程完成得更快 并且到达的时间不同 首先我尝试了 Rx 它在 C 中非常棒 我还研究了 Blocks 和
  • tabcontrol selectedindex 更改事件未被触发 C#

    嘿伙计们 我有一个很小的问题 请参阅下面的代码 this is main load private void Form1 Load object sender EventArgs e tabAddRemoveOperator Selecte
  • DataTable:通过 LINQ 或 LAMBDA 进行动态 Group By 表达式

    我有一个数据表 我想在其中对未指定数量的字段进行分组 发生这种情况的原因是用户可以选择他想要分组的字段 所以 实际上 我将选择推入列表中 在这个选择上 我必须对我的数据表进行分组 想象一下这段代码 VB 或 C 都一样 public voi
  • Visual Studio 2017 完全支持 C99 吗?

    Visual Studio 的最新版本改进了对 C99 的支持 最新版本VS2017现在支持所有C99吗 如果没有 C99 还缺少哪些功能 No https learn microsoft com en us cpp visual cpp
  • C++、三元运算符、std::cout

    如何使用 C 用三元运算符编写以下条件 int condition1 condition2 condition3 int double result int or double std cout lt lt condition1 resul
  • OSError: [WinError 193] %1 不是有效的 Win32 应用程序,同时使用 CTypes 在 python 中读取自定义 DLL

    我正在尝试编写用 python 封装 C 库的代码 我计划使用 CTypes 来完成此操作 并使用 Visual Studio 来编译我的 DLL 我从一个简单的函数开始 在 Visual Studio 内的标头中添加了以下内容 然后将其构
  • 如何使用 C# 以低分辨率形式提供高分辨率图像

    尝试使用 300dpi tif 图像在网络上显示 目前 当用户上传图像时 我正在动态创建缩略图 如果创建的页面引用宽度为 500x500px 的高分辨率图像 我可以使用相同的功能即时转换为 gif jpg 吗 将创建的 jpg 的即将分辨率

随机推荐

  • 强连通分量有什么用?

    我发现了几种可以解释的算法how在有向图中找到强连通分量 但没有解释why你会想要这样做 强连通分量有哪些应用 您应该查看 Coursera 上 Tim Roughgarden 的算法简介课程 对于他所讨论的每一种算法 他都会解释其一些应用
  • 使用 Active Directory 验证 Sharepoint?

    只需要找到一种简单的方法来让 AD 进行身份验证作为 Sharepoint 站点的登录名 这相当快速和简单地开始吗 Thanks 对于 SharePoint 2007 请参阅此article http technet microsoft c
  • 更改 R 中函数的默认参数

    我正在跟进这个答案 https stackoverflow com a 62946040 7223434 我想知道是否有办法设置参数的默认值rug to FALSE和论证multiline to TRUE在生成的图中library effe
  • 在 :before 和 :after 上为每个元素声明“content”属性是否会带来巨大的性能问题?

    您可能知道 如果您愿意使用 before and or after伪元素没有在其中设置文本 您仍然需要声明content 使它们可见 我刚刚将以下内容添加到我的基本样式表中 before after content 所以我不必再进一步声明了
  • 移动设备上的全屏画布

    我创建了一个小型画布游戏 希望它能够在 PC 和移动设备上运行 在 PC 上 画布区域可以按预期工作 但在为移动设备设计时就会出现问题 有没有一种方法 CSS 或 javascript 可以让用户双击网站内的画布区域时变成全屏 除非画布足够
  • 如何有效地使用 python 中的空数据填充文件?

    我需要创建不包含数据的任意大小的文件 它们可能相当大 虽然我可以循环遍历并写入一个空字符 直到达到文件大小 但这看起来很难看 with open filename wb as f what goes here 执行此操作的有效 Python
  • 如何获取特定CSS列的内容

    对不起我的英语不好 我正在使用 css 多列布局 有没有办法获取特定列的内容 或者如何找到分隔列的字符串的索引 div class foo div
  • 读取列标题中具有多个分隔符的文件并在末尾跳过一些行

    我是新来的Python我想用pandas用于读取数据 我已经做了一些搜索和努力来解决我的问题 但我仍然在挣扎 提前感谢您的帮助 我有一个如下所示的 txt 文件 skip1 A1 A2 A3 A4 A5 A6 A7 A8 A9 1 2 3
  • 在 SIMD 操作上下文中,非压缩指令和压缩指令有什么区别?

    在 SIMD 操作上下文中 非压缩指令和压缩指令有什么区别 我正在阅读一篇关于优化 SSE 代码的文章 http www cortstratton org articles OptimizingForSSE php batch http w
  • M1 MacBook Pro 上的 Android Studio 无法使用 ABI armeabi-v7a 模拟系统映像

    我的 M1 Macbook Pro 上的 Android Studio 可以很好地模拟 ABI arm64 v8a 的所有系统映像 API 24 29 30 31 但是 它无法使用 ABI armeabi v7a 运行所有映像 例如 API
  • 使用 jquery 从 html 表格生成 Excel 工作表

    我想在用户单击按钮后生成 Excel 工作表 基本上我想做的正是这里讨论的 如何将 html 表格值传递到 Excel 工作表单元格 https stackoverflow com questions 6517106 how to pass
  • 电源外壳。编辑字符串使其成为驼峰命名法和帕斯卡命名法

    我的目标是知道这种文本如何 var1 my name is 转换为驼峰命名法 myNameIs 还有这个类型 var2 my Name is 转换为帕斯卡命名法 MyNameIs 不知道该怎么做 您可能会使用 NETTextInfo ToT
  • “子查询返回超过 1 个值”错误

    SELECT schoolname AS combinationschools CASE WHEN schoolname LIKE THEN SELECT value FROM dbo Split 6 9E 9M END AS school
  • 将字母与空格字符异或

    为什么将任何字母与空格字符进行异或会改变字母的大小写 是否有历史原因 即 a 异或 A F 异或 f 等 或者这只是巧合 假设字符是 ASCII 或 unicode 编码的 我确信通过改变一个位就可以改变这种情况是故意的 这将使早期的软件更
  • 将 const char* 转换为 NSString * 并转换回来 - _NSAutoreleaseNoPool()

    我正在尝试将 const char 转换为 NSString 然后将其转换回来 它有效 但我得到 NSAutoreleaseNoPool Object 0x100550a40 of class NSCFArray autoreleased
  • iOS6 中 UIButton 不显示文本

    我正在使用 iOS6 和 Xcode 4 5 我遇到了一些 UI 问题UIButton 一些按钮标题没有显示在我的视图中 在旧版本的 iOS 中 一切都按预期运行 请看下图 在模拟器上执行时不显示文本 按钮 我有一个类似的案例 我刚刚解决了
  • Pod 副本如何相互同步 - Kubernetes?

    我有一个带有 3 个副本的 MySQL 数据库 Pod 现在我正在一个 Pod 中进行一些更改 Pod 数据 而不是 Pod 配置 假设我要添加一张表 该更改将如何影响 Pod 的其他副本 我正在使用带有 3 个工作节点的 kubernet
  • 为什么 .NET/C# 不优化尾调用递归?

    I found 这个问题 https stackoverflow com questions 340762 which languages support tail recursion optimization关于哪些语言优化尾递归 为什么
  • 在线设定值

    有了 C 中我们可以做的所有很棒的事情 我想知道我们是否可以做如下的事情 string totalWording if isA return Value A if isB return Value B if isC return Value
  • C# 参数明显的编译器错误(C# 5.0)[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 这是一个后