Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何仅当C#方法存在时才调用该方法?

如何仅当C#方法存在时才调用该方法?
EN

Stack Overflow用户
提问于 2011-01-31 22:00:02
回答 6查看 11.3K关注 0票数 11

如果没有反射,或者有反射,这是可能的吗?这是PHP中经常使用的东西,比如在Wordpress中。

伪代码中的一些东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (exists(object.method)) {object.method}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try {object.method} finally {...}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-31 22:04:55

您可以使用动态并捕获运行时异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dynamic d = 5;
try
{
    Console.WriteLine(d.FakeMethod(4));
}
catch(RuntimeBinderException)
{
    Console.WriteLine("Method doesn't exist");
}

虽然这听起来更像是一个设计问题。

免责声明

这段代码不是用来用的,只是一个可以做的例子。

票数 17
EN

Stack Overflow用户

发布于 2011-01-31 22:03:12

你可以在一个接口中声明它,然后使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
IFoo foo = bar as IFoo;
if (foo != null)
{
    foo.MethodInInterface();
}

但前提是您可以让对象的实际类型实现接口。

否则,您将需要使用反射AFAIK。

(编辑:这里提到的动态类型也可以在.NET 4上使用,当然……但是为此而捕获异常是相当糟糕的IMO。)

票数 23
EN

Stack Overflow用户

发布于 2019-10-05 02:37:36

使用.GetType().GetMethod()检查它是否存在,然后对其执行.Invoke()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var fooBar = new FooBarClass();
var method = fooBar.GetType().GetMethod("ExistingOrNonExistingMethod");
if (method != null)
{
    method.Invoke(fooBar, new object[0]);
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4856644

复制
相关文章
C# 调用PowerShell方法
PowerShell应为编写和运行都很方便,所以为了重复利用,经常写了一些小方法或者PS代码片段。使用的时候可能会很难找到自己想要的那个方法,如果要是有一个界面把这些代码管理起来并且调用,那就很爽了 1.创建一个powershell的方法,供C#调用,方法很简单,两个数的加法运算 1 function Sum 2 { 3 param([int]$first, [int]$second) 4 $result = $first + $second 5 return $result 6 }  2. 在C#的控制台
数据分析
2018/03/01
3.5K0
C#中方法的调用
* 类型需要一致,double--float,子类可以替换父类(反例) * 数量需要一致,params,还可以有默认值(反例) * 顺序需要一致 ,可以使用“参数=值”的方式,可选参数必须出现在所有必选按参数之后。 * 如果某个参数使用了(参数:值)的方式,那么之后的所有参数也必须使用这种格式。
zls365
2020/08/19
1.2K0
C# 解析js方法,并调用js方法
本文转载:http://www.cnblogs.com/StudyLife/archive/2013/03/11/2953516.html
跟着阿笨一起玩NET
2018/09/19
4.9K0
[PHP] php调用不存在的方法会自动调用 __call 魔术方法
在很多框架里看代码,有时候会有这种用法 <?php class Test{ public function __call($method, $parameters){ var_
唯一Chat
2021/08/31
1.2K0
[PHP] php调用不存在的方法会自动调用 __call 魔术方法
C#异步调用的方法
最经公司工作需要调用一个外部的webservice,同时要将传出的数据进行保存,以自己以前的习惯,就打算逐步操作,失败啊,完全没考虑过用户体验效果,在同事指点下,意识到使用异步调用的好处,随便将自己找的一些资料留以保存,以戒后误! 我们要明确,为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步如何开始,好理解,现在我们讨论的是如何结束这个异步出来的新线程。C#异步调用的好处和方法
全栈程序员站长
2022/07/15
1.2K0
C# 调用js库的方法
用.NET 6开发一个Winform程序,处理Excel文件,并把结果导出Excel文件。 要用到两个算法,一是turf.js库的booleanPointInPolygon方法,判断经纬度坐标是否在区域内;二是经纬度纠偏算法,因为对方给的区域坐标集合有偏移,需要纠偏。
郑子铭
2023/02/12
11.5K0
C# 调用js库的方法
C#异步调用的方法
最经公司工作需要调用一个外部的webservice,同时要将传出的数据进行保存,以自己以前的习惯,就打算逐步操作,失败啊,完全没考虑过用户体验效果,在同事指点下,意识到使用异步调用的好处,随便将自己找的一些资料留以保存,以戒后误! 我们要明确,为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,
逸鹏
2018/04/10
1.8K0
window.scroll 方法只能存在一次该如何解决?
页面监听是我们经常用的一个功能,下面两个段代码表示两个事件,分别在页面滚动500px和1000px的时候触发,在代码中使用了箭头函数。
子舒
2022/06/09
6030
CA1849:当在异步方法中时,调用异步方法
从任务返回方法调用时,存在 Async 后缀等效项的所有方法都会生成此警告。 此外,调用 Task.Wait()、Task<T>.Result 或 Task.GetAwaiter().GetResult() 将生成此警告。
呆呆
2022/02/26
9570
当网页图片不存在时不显示叉叉,显示默认图片的方法,管用的很!
有时候管理系统里面的产品图片没上传,或者因为网络原因传输过程中断了,图片没显示出来,就会显示一个叉叉,并且图片的占位符也不起作用了。昨晚上花了1个小时搜索、调试,验证了几种网络上的方法,最终有2种方法的确有效,鉴于代码优美的需要,我选择了如下一种。
崔文远TroyCui
2019/02/26
1.9K0
[享学Netflix] 三十三、Hystrix执行目标方法时,如何调用线程池资源?
代码下载地址:https://github.com/f641385712/netflix-learning
YourBatman
2020/03/18
1.3K0
c# 方法调用链System.Diagnostics.StackTrace[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说c# 方法调用链System.Diagnostics.StackTrace[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/09/12
7310
c# 方法调用链System.Diagnostics.StackTrace[通俗易懂]
C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)
本文转载:http://www.csframework.com/archive/2/arc-2-20110805-1771.htm
跟着阿笨一起玩NET
2018/09/18
8.4K0
C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)
C#构造方法--实例化类时初始化的方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { a a1 = new a(); Console.ReadKey();
杨奉武
2018/04/17
1.7K0
C#构造方法--实例化类时初始化的方法
方法调用
参数传递值传递:在 Java 方法中传递参数,形参本质是实参的副本。参数是基础数据类型:对形参的改变不会影响实参。参数是指向对象的引用(包括数组、字符串):对对象数据进行更改会影响实参,但改变引用指向的对象不会影响实参。public class Test{ public static void main(){ int i = 0; int[] arr = {0}; test(i, arr); System.out.print(i);
Qwe7
2022/08/03
1.9K0
当谈研发效能时,该谈些什么?
从工具使用、业务的理解、团队的沟通协作到流程、组织、分享等内容,我能想到的大部分有关研发效能的点都有涉及到。
oec2003
2022/06/14
3730
当谈研发效能时,该谈些什么?
C#动态调用泛型类、泛型方法
      主程序加载另一个程序集,将其中的所有类取出,然后对这些类分别调用泛型类或泛型方法。控制台程序解决方案如下:
hbbliyong
2018/12/28
3K0
java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?
大家好,又见面了,我是你们的朋友全栈君。 你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧! 1、利用Spring的异步方法去执行
全栈程序员站长
2022/09/14
4K0
当使用POI打开Excel文件遇到out of memory时该如何处理?
当我们开发处理Excel文件时,Apache POI 是许多人首选的工具。但是,随着需求的增加、工程复杂,在打开复杂的Excel文件的时候可能会出现一些异常情况。
葡萄城控件
2023/10/14
4940
当使用POI打开Excel文件遇到out of memory时该如何处理?
Linux 当grub引导故障时该怎么办?
grub引导的配置文件存放于 /boot/grub2/grub.cfg,当此文件损坏或丢失的话,Linux主机启动后可能只会出现 “grub>” 的提示符,如下图
小手冰凉
2019/09/10
3.7K0
Linux 当grub引导故障时该怎么办?

相似问题

仅当方法存在时才调用该方法

50

仅当方法解决了当前目标时,才应用该方法

40

仅当类有特定方法时,如何调用该方法?

23

如何仅当方法是java中的instanceof时才使用该方法

10

仅当其他方法完成时才调用方法- RxJava

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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