加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 错误地定义自定义类型?

发布时间:2020-12-16 01:54:04 所属栏目:百科 来源:网络整理
导读:在以下代码中,我正在尝试定义自定义类型: public class WindowPosition{ public static WindowPosition Below; public static WindowPosition Right;}private void ChildWindow(Form Form,WindowPosition Position){ Form.Location = new Point( Position =
在以下代码中,我正在尝试定义自定义类型:

public class WindowPosition
{
    public static WindowPosition Below;
    public static WindowPosition Right;
}

private void ChildWindow(Form Form,WindowPosition Position)
{
    Form.Location = new Point(
        Position == WindowPosition.Right ? this.Location.X + this.Width : 0,Position == WindowPosition.Below ? this.Location.Y + this.Height : 0
    );

    Form.Show();
}

private void buttonNew_Click(object sender,EventArgs e)
{
    ChildWindow(new New(),WindowPosition.Below);
}

该代码应该使New表单直接在主表单下面打开 – 但它在这里打开:

New的StartPosition设置为Manual.

我想我正在定义不正确的类型.我该如何正确定义它?

或者问题是什么,或者我是以错误的方式接近这个?

解决方法

你想要一个Enum,而不是一个班级.

enum WindowPosition {
     Right,Bottom
}

像这样引用它:WindowPosition.Right

你正在做的是声明一个类,然后说它有2个与它相同类型的静态成员,这对于某些不同的应用程序来说并不完全不合理,但它不适用于此.

它不能与你的代码一起工作的原因是因为它们都没有被分配任何东西,所以它们都返回null,这将使WindowPosition.Right == WindowPosition.Left返回true.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读