小编Lar*_*Bud的帖子

在 Visual Studio 中自动创建处理程序签名

在 c#、asp.net 4.0、VS2015 中,我创建了一个用户控件,它只是一个下拉列表,其中包含一些用户可以传递给它的其他属性,以及一个事件和委托。当下拉列表更改时,将触发 OnSelectedIndexChanged,然后检查事件是否已填充并调用委托。

定义如下所示:

public partial class SiteList : System.Web.UI.UserControl
{
    public event SiteIDChangedHandler SiteIDChanged;
    public delegate void SiteIDChangedHandler(object sender, EventArgs e);
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当使用该用户控件并附加事件时,在 .aspx 页面中工作时,不会在 Visual Studio 中创建委托的定义。例如,当我输入以下内容时

<CW:SiteList runat="server" ID="SiteList" OnSiteIDChanged=""
Run Code Online (Sandbox Code Playgroud)

并点击 OnSiteIDChanged 的​​ = 符号,然后它说“创建新事件”作为 OnSiteIDChanged 的​​选项,就像我在 .net 中使用的任何其他事件一样。当我选择“CreateNewEvent”时,在后面的代码中创建的方法是:

 protected void SiteList_SiteIDChanged()
    {
    }
Run Code Online (Sandbox Code Playgroud)

并且不包含处理程序的正确签名。

现在奇怪的是,如果我在后面的代码中绑定事件: SiteList.SiteIDChanged +=

它说“按(TAB)插入”,插入的方法是:

private void SiteList_SiteIDChanged1(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }
Run Code Online (Sandbox Code Playgroud)

那么我错过了什么,以便使用发送者创建正确的方法签名,并且 eventargs 自动在第一个实例中?我知道这是可以做到的,所有的 .net 控件都可以做到!

c# events delegates

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

返回 C++ 中的字符串数组、长度和损坏

我是一名 .NET 人员,正在深入研究 C++/微控制器领域。

以下是我正在尝试做的事情的模型。我有一个传入值的方法,并且根据该值我想返回一个不同的硬编码字符串数组。

当我单步执行此操作时,我的函数main()似乎可以工作,并且看起来我正在函数中返回正确的类型。我可以设置一个断点并查看files[0]是否是预期的字符串,files[1]是否是预期的字符串等。我可以单步执行循环并设置监视,files[i]然后我会看到适当的字符串。那里一切都很好。

那么两个问题:如何获取数组中有多少个元素?看了一百万个帖子,看来我做不到,对吧?我是否只需要一些在循环时需要检查的结束字符串(例如空字符串)?

其次,你会注意到我已经注释掉printf()了。当我启用该功能后,在单步执行后printf(),它会更改字符串的内容,但我不明白为什么要这样做。查看逐步执行之前/之后的图像以及手表的结果。我认为这可能是因为字符串没有以 a 隐式终止\0,但这没有效果。

#include <cstdlib>
#include <cstdio>

const char** GetSoundCategory(int category)
{
    const char* FILES1[3] = {
        "/myfile1.mp3",
        "/this_is_my_file.mp3",
        "/myfile9.mp3"
    };

    const char* FILES2[2] = {
        "/I love S.E.mp3",
         "/please_help_me.mp3"
    };   

    const char** ptr = nullptr;

    switch (category)
    {
        case 1:
            ptr = FILES1;
            break;
        case 2:
            ptr = FILES2;
            break;
    }
    return ptr;
}

int main()
{
    const …
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++

-1
推荐指数
1
解决办法
91
查看次数

标签 统计

c# ×1

c++ ×1

delegates ×1

events ×1

visual-c++ ×1