问题列表 - 第6718页

如何为.NET属性创建委托?

我正在尝试创建一个委托(作为测试):

Public Overridable ReadOnly Property PropertyName() As String
Run Code Online (Sandbox Code Playgroud)

我的直觉尝试是声明代表这样:

Public Delegate Function Test() As String
Run Code Online (Sandbox Code Playgroud)

并实例化如下:

Dim t As Test = AddressOf e.PropertyName
Run Code Online (Sandbox Code Playgroud)

但这会引发错误:

方法'Public Overridable ReadOnly Property PropertyName()As String'没有与委托'Delegate Function Test()As String'兼容的签名.

因为我正在处理一个属性我试过这个:

Public Delegate Property Test() As String
Run Code Online (Sandbox Code Playgroud)

但这会引发编译错误.

所以问题是,我如何为一个财产代表?


看到这个链接:

http://peisker.net/dotnet/propertydelegates.htm

c# vb.net delegates

21
推荐指数
2
解决办法
4万
查看次数

从DataGridView选定的单元格中获取文本

我有一个DataGridView与包含数据的数据库文件中的单元格.基本上,我想从DataGridView中的选定单元格中获取文本,并在单击按钮时将其显示在文本框中.按钮单击事件的代码是:

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim SelectedThings As String = DataGridView1.SelectedCells.ToString
    TextBox1.Text = SelectedThings
End Sub
Run Code Online (Sandbox Code Playgroud)

但是在TextBox1中,我得到:

System.Windows.Forms.DataGridViewSelectedCellCollection

我觉得它并不像看起来那么简单.我是一名学习VB.NET的C开发人员.

vb.net textbox datagridview tostring

7
推荐指数
3
解决办法
15万
查看次数

有没有更快的方法在.NET中递归扫描目录?

我在.NET中编写目录扫描程序.

对于每个文件/目录,我需要以下信息.

   class Info {
        public bool IsDirectory;
        public string Path;
        public DateTime ModifiedDate;
        public DateTime CreatedDate;
    }
Run Code Online (Sandbox Code Playgroud)

我有这个功能:

      static List<Info> RecursiveMovieFolderScan(string path){

        var info = new List<Info>();
        var dirInfo = new DirectoryInfo(path);
        foreach (var dir in dirInfo.GetDirectories()) {
            info.Add(new Info() {
                IsDirectory = true,
                CreatedDate = dir.CreationTimeUtc,
                ModifiedDate = dir.LastWriteTimeUtc,
                Path = dir.FullName
            });

            info.AddRange(RecursiveMovieFolderScan(dir.FullName));
        }

        foreach (var file in dirInfo.GetFiles()) {
            info.Add(new Info()
            {
                IsDirectory = false,
                CreatedDate = file.CreationTimeUtc,
                ModifiedDate = file.LastWriteTimeUtc,
                Path = file.FullName
            });
        } …
Run Code Online (Sandbox Code Playgroud)

.net c# filesystems

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

如何在ASP.NET MVC中构建没有ViewContext的路由?

我想从一个无法访问ViewContext的实用程序类创建一个路由.

这可能吗?似乎没有任何相当的ViewContext.Current

我试过在Routing和HttpContext的所有构造函数中钓鱼但是不能完全达到我想要的.

这就是我正在寻找的 - 虽然这不起作用,因为RouteTable.Routes它是类型RouteCollection而不是RouteData.如此接近 - 但到目前为止:-)

        RequestContext requestContext = new RequestContext(HttpContext.Current, RouteTable.Routes);
        UrlHelper url = new UrlHelper(requestContext);
        var urlString = url.RouteUrl(new {controller="DynamicImage", action="Button", text="Hello World"});
Run Code Online (Sandbox Code Playgroud)

注意:RequestContest的类型为System.Web.Routing.RequestContext,而不是HttpContext

asp.net-mvc routing

7
推荐指数
1
解决办法
2677
查看次数

按住时键盘输入犹豫?

有谁知道为什么在按住键盘键并尝试处理它时会有些犹豫?我正在调用 WinProc(...) 中的一个函数,该函数将在按住某个键时在屏幕 (OpenGL) 上移动图像。我按下它并得到一个响应,然后大约 0.5 秒没有任何反应,然后它的行为正常(每个 WinMain 循环移动 1 个像素)。

我想知道 Windows 消息是否因为我需要禁用的某些功能而以某种方式延迟???

这是我的代码:

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int nshowcmd)
{
    bool quit = false;
    MSG msg;

    createWindow(hinstance, SCRW, SCRH, SCRD, WINDOWED);

    // Main loop
    while (!quit)
    {       
        if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))
        {
            if (msg.message == WM_QUIT)
                quit = true;

            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }

        renderFrame();        // processes graphics
        SwapBuffers(hdc);
    }
    return msg.lParam;
}
Run Code Online (Sandbox Code Playgroud)

和 WinProc(有更多案例,但同样的事情......):

    LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM …
Run Code Online (Sandbox Code Playgroud)

c++ windows opengl input messages

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

有人知道用于使用生成单元格对Grid列进行大小调整的算法吗?(WPF)

当您的子元素始终包含在单个网格单元格中时(即没有列/行跨越),使用WPF网格控件很容易.固定宽度的列保持所请求的固定宽度,自动列的大小确实与列中最宽的单元格一样宽.星列根据其相对星值共享任何剩余空间.一切都很简单.

但是一旦你有一个跨越两列或更多列的单元格,列的宽度变得更加复杂,并且实际上看起来反直觉.这是我的意思的一个简单例子.我们可以定义两列,第一列为auto,第二列为30像素.

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)

现在我们定义一个跨越两列的按钮,恰好以80像素宽度进行测量.(在我的机器上使用我的字体和主题设置等...)

<Button Grid.ColumnSpan="2" Content="QWERTYUIOP"/>
Run Code Online (Sandbox Code Playgroud)

我们需要在两个生成列上分配按钮的80像素宽度.鉴于第二列固定为30,我预计将为该列分配30,剩余的50将转到第一列.因为第一列是自动的,所以看起来很明显.

但不是.如果你在实践中尝试这个,你会发现第一列是0像素而第二列已经变成完整的80.即使第二列被定义为固定,因此不应该变得更大,它会拉伸到整个宽度的按钮.也许我在这里遗漏了一些东西,但这对我来说似乎不合逻辑.

所以对我的实际问题.是否对Grid控件用于执行此计算的逻辑有完整描述,以便我可以完全理解它是如何工作的?我搜索过MSDN和Google,但没有找到任何描述生成元素如何影响列宽的内容.

wpf grid

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

Java方法参数是否应该用于返回多个值?

由于发送到Java中的方法的参数指向调用方法中的原始数据结构,因此其设计者是否打算使用它们来返回多个值,这是其他语言(例如C)的常规吗?

或者这是对Java的一般属性的危险误用,变量是指针吗?

java arguments reference return-value

26
推荐指数
4
解决办法
2万
查看次数

NUnit最佳实践

环境:(Visual Studio Professional 2008中的C#WinForms应用程序)

我一直在挖掘一些关于NUnit最佳实践的指导.作为一个在相对孤立的环境中工作的独立程序员,我希望这里的集体智慧可以帮助我.

斯科特怀特在这里有一些很好的起点,但我不确定我是否完全同意他所说的一切 - 特别是第2点.我的直觉告诉我,测试越接近被测试的代码,你就越有可能获得完整的测试覆盖率 在对Scott的博客评论中发表的评论是,仅仅测试公共界面被一些人视为最佳实践,但我认为测试框架不是典型的类消费者.

你能推荐什么作为NUnit的最佳实践?

tdd nunit

4
推荐指数
2
解决办法
3291
查看次数

如何将3D点转换为2D透视投影?

我目前正在使用Bezier曲线和曲面来绘制着名的犹他州茶壶.使用16个控制点的Bezier贴片,我已经能够绘制茶壶并使用"世界到相机"功能显示它,这使得能够旋转生成的茶壶,并且目前正在使用正交投影.

结果是我有一个"扁平"茶壶,预计正投影的目的是保持平行线.

但是,我想使用透视投影来给出茶壶深度.我的问题是,如何从"世界到相机"函数返回3D xyz顶点,并将其转换为2D坐标.我想在z = 0时使用投影平面,并允许用户使用键盘上的箭头键确定焦距和图像大小.

我在java中编程并设置了所有输入事件处理程序,并且还编写了一个处理基本矩阵乘法的矩阵类.我已经阅读了维基百科和其他资源一段时间,但我无法完全了解如何执行此转换.

java 3d graphics bezier

51
推荐指数
5
解决办法
9万
查看次数

编写NUnit测试代码

如何编写以下方法的代码,以便可以在NUnit中进行测试?怎么处理Hashtable

public DataSet MySampleMethod(int param1, string param2, Hashtable ht)
{
    if(ht==null)
    {
        ht = new Hashtable();
    }
    ht.Add("testKey","testData");

    DataSet ds = new DataSet();
    ds.Tables.Add();
    ds.Tables[0].Columns.Add("Column1");
    ds.Tables[0].Columns.Add("Column2");
    ds.Tables[0].Columns.Add("Column3");

    DataRow dr = ds.Tables[0].NewRow();
    dr["Column1"] = "My column 1";
    dr["Column2"] = "My column 2";
    dr["Column3"] = "My column 3";
    ds.Tables[0].Rows.Add(dr);

    DataRow dr1 = ds.Tables[0].NewRow();
    dr1["Column1"] = param1.ToString();
    dr1["Column2"] = param2;
    dr1["Column3"] = ht["testKey"].ToString();
    ds.Tables[0].Rows.Add(dr1);

    return ds;
}
Run Code Online (Sandbox Code Playgroud)

nunit

0
推荐指数
1
解决办法
2382
查看次数