小编Jer*_*sen的帖子

如何实现添加特征以引用结构?

我做了一个两元素Vector结构,我想重载+运算符.

我使我的所有函数和方法都采用引用而不是值,我希望+运算符以相同的方式工作.

impl Add for Vector {
    fn add(&self, other: &Vector) -> Vector {
        Vector {
            x: self.x + other.x,
            y: self.y + other.y,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

根据我尝试的变化,我要么遇到生命问题,要么输入不匹配.具体来说,这个&self论点似乎没有被视为正确的类型.

我已经看到了模板参数的例子上impl,以及Add,但他们只是导致不同的错误.

我发现如何为不同的RHS类型和返回值重载运算符?但即使我把一个use std::ops::Mul;放在顶部,答案中的代码也不起作用.

我正在使用rustc 1.0.0-nightly(ed530d7a3 2015-01-16 22:41:16 +0000)

我不接受"你只有两个字段,为什么要使用参考"作为答案; 如果我想要一个100元素结构怎么办?我会接受一个答案,证明即使有一个大的结构我也应该通过值传递,如果是这样的话(我认为不是这样).我有兴趣知道结构大小的一个好的经验法则并且通过值vs struct传递,但这不是当前的问题.

reference traits lifetime rust

40
推荐指数
2
解决办法
8676
查看次数

允许自定义控件正确滚动出视图

我有一个自定义控件,包含一个带文本的填充圆角矩形.(实际控件更复杂,但此处显示的代码具有相同的症状.)我将控件的实例附加到Panel,并使该Panel成为另一个Panel的子级,其AutoScroll = true.我认为这对于正确的滚动行为是足够的,但是如果你滚动使得我的控件的左侧应该离开面板的左侧,它会粘住并且控件会缩小.与滚动相同,控件应在顶部关闭.(底部和右部似乎不是问题.)以下是示例代码(需要对System.Windows.Forms和System.Drawing的引用.)我在Windows上使用Visual Studio 2010和.NET 4客户端.

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;


namespace CustomControlScrollTest
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

    // Form with a Dock = Fill panel with autoscroll turned on, and a nested panel
    // with few custom roundRectControls.
    public class Form1 : Form
    {
        Panel autoScrollPanel;
        Panel rectPanel;

        public Form1()
        {
            Size = new Size(300, 200);

            autoScrollPanel = new Panel();
            autoScrollPanel.Dock = DockStyle.Fill;
            autoScrollPanel.AutoScroll = …
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

我是否需要丢弃或销毁自定义游标

我正在使用类似于此问题的接受答案的代码来制作自定义光标.我想我可以问,"当我完成自定义光标后我该怎么办?" 但具体来说,我的问题分为两部分:

一:我看到使用反射来设置光标的"ownHandle"字段的代码.是否这样可以在放置Cursor对象时销毁(本机)句柄?如果不是它做什么?

二:我是否必须手动处理光标对象或者为控件分配新光标,导致控件为我配置光标?例如:

private void customCursorButton_Clicked(object sender, EventArgs e)
{
    this.Cursor = NativeMethods.LoadCustomCursor(@"c:\windows\cursors\aero_busy.ani");
}

private void defaultCursorButton_Clicked(object sender, EventArgs e)
{
    var tmp = this.Cursor; // do I have to do this
    this.Cursor = Cursors.Default;
    tmp.Dispose();         // and this?
}
Run Code Online (Sandbox Code Playgroud)

c# cursors idisposable custom-controls

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