首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有C#方法重载参数排序约定?

是否有C#方法重载参数排序约定?
EN

Stack Overflow用户
提问于 2013-02-12 20:29:25
回答 2查看 2.8K关注 0票数 14

对于以下情况,C# (或任何支持方法重载的面向对象语言)是否有某种约定?

假设我有一个方法foo:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void Foo(int a){//does stuff}

但实际上我有3个方法foo:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void Foo(int a){}
public void Foo(int a, double b){}
public void Foo(float c, int a, double b){}

是否有一个约定来说明重载方法中参数的顺序是否重要?注意第三种方法没有明显的逻辑级数(a,b,c)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-12 20:32:09

是的有。看一看https://msdn.microsoft.com/en-us/library/ms229029(v=vs.110).aspx

在重载成员中的参数顺序上是一致的。在所有重载中,具有相同名称的参数应该出现在相同的位置。

票数 21
EN

Stack Overflow用户

发布于 2013-02-12 20:37:41

虽然不需要维护特定的顺序,但出于可读性的考虑,这样做通常是一个好主意。但是,参数的顺序对方法签名很重要。例如,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void DoStuff(int a, bool b, string c)
{

}

public void DoStuff(bool b, string c, int a)
{

}

是有效的,并且编译得很好,即使参数的数量,甚至它们的名称都是相同的。

更新:我不推荐这样做。这可能会导致混乱。我只是说它在技术上是有效的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14841223

复制
相关文章
第11章 运算符重载与约定第11章 运算符重载与约定
我们在《第2章 Kotlin 语法基础》中已经学习过关于运算符的相关内容,本章将继续深入探讨Kotlin中的运算符的重载与约定。
一个会写诗的程序员
2018/08/17
9510
第11章 运算符重载与约定第11章 运算符重载与约定
C#基础知识之方法重载总结
方法重载是指在同一个类中方法同名,参数不同,调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术。
跟着阿笨一起玩NET
2018/09/19
4080
重载、重写---C#
2).实例方法: 相反,实例方法就是方法前面不加关键字static,直接通过new运算符,实例化一个对象后,通过创建的对象来点出来,实例方法;而且,它是不能通过类名字点出来实例方法的。 下面的代码演示实例方法的定义和调用:
静心物语313
2020/03/24
1.2K0
重载、重写---C#
C#函数重载
C#允许这样定义函数,而不会报错,传的值的类型不一样,C#会根据值的类型自动选择用哪一个函数C#允许这样定义函数,而不会报错,传的值的类型不一样,C#会根据值的类型自动选择用哪一个函数
zls365
2020/08/19
5130
C#函数重载
先看两个函数 void test(int i); void test(string str); 这就是多态 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) {
杨奉武
2018/04/17
6200
【说站】java重载方法的参数设置
在上面的例子中,-方法disp()根据参数重载-我们有两种方法的名称,disp但它们有不同的参数。两者都有不同的参数。
很酷的站长
2022/11/24
3410
【说站】java重载方法的参数设置
C#方法的参数形式
和ref类似,唯一区别是ref要求变量必须在传递之前赋值,而out不用进行赋值即可使用。
vv彭
2020/11/12
7060
Kotlin | 7.运算符重载及其他约定
本章内容包括: 运算符重载 约定:支持各种运算的特殊命名函数 委托属性 7.1 运算符 /**-------------------- 7.1.1 重载二元算术运算 ----------------------*/ // 代码清单7.1 定义一个plus运算符 data class Point(val x: Int, val y: Int) { // 定义一个名为 plus 的方法 operator fu
Jingbin
2021/03/02
9620
Java基础入门笔记04——方法调用,方法重载,命令行参数,可变参数,多维数组,Arrays类,冒泡排序,矩阵的压缩存储
一般情况:写几个名字一样的方法(方法名必须相同),让它们的参数类型不同(一定不同),参数个数可以不同,参数顺序可以不同,方法体也可以不同。
全栈程序员站长
2022/09/21
7150
Java基础入门笔记04——方法调用,方法重载,命令行参数,可变参数,多维数组,Arrays类,冒泡排序,矩阵的压缩存储
使用C# 11的静态接口方法改进 面向约定 的设计
C# 11带来了一个我期待已久的特性——接口方法。我们知道接口是针对契约的定义,但是一直以来它只能定义一组“实例”的契约,而不能定义类型(的静态成员)的契约,因为定义在接口中的方法只能是实例方法。由于缺乏针对“类型契约”的支持,我们在设计一些框架或者类库的时候,只能采用“按照约定”的设计,比如ASP.NET Core Minimal API针对参数的绑定就是一个典型的案例。以如下这个简单的应用为例,我们采用Minimal API的形式注册了一个针对根地址“/”的路由,作为处理器的委托的输出和输出都是我们自定义的Point对象。
蒋金楠
2022/12/09
6800
使用C# 11的静态接口方法改进 面向约定 的设计
C# 判断方法是否被子类重写
在 C# 如果在类定义 virtual 的方法,那么可以在子类重写,如何判断一个方法被子类可以通过反射
林德熙
2022/08/04
4360
C#的重载决策
重载是许多编程语言支持的特性。所谓重载,就是指可以定义多个名称相同但参数(个数、类型和顺序)不同的方法(函数)。先来看一个例子:
czwy
2023/10/22
2160
c#委托把方法当成参数
//定义委托,它定义了可以代表的方法的类型 public delegate void GreetingDelegate(string name); /// <summary> /// 用英文打招呼 /// </summary> /// <param name="name"></param> private void EnglishGreeting(string name) {
跟着阿笨一起玩NET
2018/09/19
8280
Thinking--函数参数重载
前段时间分享过 Thinking–函数参数Normalize思想在前端中的应用 ,对于函数多类型参数很是实用。
奋飛
2020/05/28
4590
Java——方法重载及重载规则
方法的名字都叫 sum. 但是有的 sun 是计算 int 相加, 有的是 double 相加; 有的计算两个数字相加, 有的是计算三个数字相加。 同一个方法名字, 提供不同版本的实现, 称为方法重载
小雨的分享社区
2022/10/26
1K0
Java——方法重载及重载规则
Java - 方法重载
在同一个类中, 允许存在一个以上的同名方法, 只要它们的 参数个数、参数类型不同即可
kenvie
2022/01/20
8300
Java - 方法重载
java方法重载
如下方代码块所示,代码块中的代码都是功能类似的方法,但是方法名却都不同这样子导致很难记忆,太过于麻烦
一只胡说八道的猴子
2020/09/27
8910
java方法重载
方法重载应用
在同一个类中,不能出现两个完全一样的方法。但是如果有多个功能,而这些功能大致相同只是某些已知量不同时,可以将两个方法的名称定义成相同的,而参数不同。这些相同名称不同参数的方法之间是重载关系。
星哥玩云
2022/09/14
4950
方法重载应用
【C++】函数重载 ② ( 重载函数调用分析 | 函数重载特点 | 函数重载与默认参数 )
重载函数 调用查询 分析 : 调用一个重载函数 , 如何从多个重载函数中找出自己要调用的函数 , 流程如下 :
韩曙亮
2023/10/15
3370
【C++】函数重载 ② ( 重载函数调用分析 | 函数重载特点 | 函数重载与默认参数 )
C# 运算符重载
重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。
wfaceboss
2019/04/08
4100

相似问题

是否有任何Java方法排序约定?

80

Java setter方法约定(是否可以重载setter?)

30

Java方法命名约定和重载

13

c#单元测试.重载方法测试的命名约定

30

是否有可能重载最终方法

70
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文