小编DAC*_*DAC的帖子

C#动态事件订阅

您如何动态订阅C#事件,以便给定一个Object实例和一个包含事件名称的String名称,您订阅该事件并在触发该事件时执行某些操作(例如写入控制台)?

它似乎使用反射,这是不可能的,我想避免必要时使用Reflection.Emit,因为这当前(对我来说)似乎是这样做的唯一方法.

/编辑:我不知道事件所需的代表签名,这是问题的核心

/编辑2:尽管代表性逆转似乎是一个好的计划,但我无法做出使用此解决方案所必需的假设

c# reflection events delegates

31
推荐指数
2
解决办法
3万
查看次数

.Net数组,下限> 0

虽然想要做的事情可能很奇怪,但我需要在.Net中创建一个下限> 0的数组.这开始似乎是可能的,使用:

Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Run Code Online (Sandbox Code Playgroud)

生成所需的结果(下限设置为9的对象数组).但是,创建的数组实例不能再传Object[]递给其他方法,期望给出一个错误,说明:

System.Object[*]不能铸成一个System.Object[].数组类型有什么不同,我该如何克服这个?

编辑:测试代码=

Object x = Array.CreateInstance(typeof(Object), new int[] {2}, new int[] {9});
Object[] y = (Object[])x;
Run Code Online (Sandbox Code Playgroud)

失败的原因是:"无法将类型为'System.Object [*]'的对象强制转换为'System.Object []'."

我还想指出,这种方法DOES使用多个维度时工作:

Object x = Array.CreateInstance(typeof(Object), new int[] {2,2}, new int[] {9,9});
Object[,] y = (Object[,])x;
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.

.net arrays

11
推荐指数
1
解决办法
4535
查看次数

VB6运行时类型检索

如何在运行时获取VB6中的Object类型(作为字符串的名称就足够了)?

即:像:

If Typeof(foobar) = "CommandButton" Then ...
Run Code Online (Sandbox Code Playgroud)

/编辑:澄清一下,我需要检查动态类型对象.一个例子:

Dim y As Object 

Set y = CreateObject("SomeType")

Debug.Print( <The type name of> y)
Run Code Online (Sandbox Code Playgroud)

输出将是"CommandButton"

vb6 runtime

6
推荐指数
1
解决办法
3782
查看次数

DVD菜单编码

作为一名程序员,我不知道如何为DVD编程菜单,我听说这是可能的,甚至可以看到使用DVD菜单的基本游戏 - 尽管它很可能是一个封闭的系统.它是否可能,如果是这样,那么存在什么语言,编译器等?

dvd menu

6
推荐指数
1
解决办法
5552
查看次数

Visual Studio Winforms 设计器蓝色箭头

当控件左上角的蓝色箭头出现在 Visual Studio 2010/C# 中时,它们表示什么?例如:

.net visual-studio-2010 winforms

5
推荐指数
1
解决办法
241
查看次数

PHP包含输出未知字符的函数

当使用php include函数时,include成功执行,但是在输出include的输出之前它也输出一个char,char是十六进制值3F而我不知道它来自哪里,虽然它似乎每个包含都会发生.

起初我认为它是文件编码,但这似乎不是一个问题.我已经创建了一个测试用例来演示它:( 链接不再有效)http://driveefficiently.com/testinclude.php此文件仅包含:

<? include("include.inc"); ?>
Run Code Online (Sandbox Code Playgroud)

和include.inc仅包含:

<? echo ("hello, world"); ?> 
Run Code Online (Sandbox Code Playgroud)

然而,输出是:"你好,世界"在哪里?是一个具有随机值的char.正是这个价值我不知道它的起源,它有时会搞砸我的网站.

关于这可能来自哪里的任何想法?起初我以为它可能与文件编码有关,但我不认为这是一个问题.

php encoding byte-order-mark

4
推荐指数
1
解决办法
2937
查看次数

Visual basic 6 内置函数的默认属性

Visual Basic 具有默认属性,有时在计算表达式时会隐式调用这些属性。但是,我似乎遇到了与默认属性的隐式执行之间的差异。项目布局如下:

第1类:

property test -> class2 (default)
Run Code Online (Sandbox Code Playgroud)

2类:

property test -> string "hello world" (default)
Run Code Online (Sandbox Code Playgroud)

表格一:

Dim x As New Class2
MsgBox x
Debug.Print x
Run Code Online (Sandbox Code Playgroud)

MsgBox 语句将隐式调用 x 的默认值(在 class1 上进行测试),并且还会调用 x 的默认值(在 class2 上进行测试),从而导致屏幕上显示“hello world”。然而,Debug.Print 语句不会执行此操作,通过跟踪调试器,可以看到仅调用了第一个默认值(在 class1 上)。

我已经验证了许多内置函数(例如 MsgBox/RTrim/LTrim)都表现出这种行为,并且任何自行编写的方法或类方法都不会执行此操作;但我无法弄清楚为什么会发生这种情况?

vb6 properties object default-value

2
推荐指数
1
解决办法
1071
查看次数