c# - 从函数

时间:2017-04-18 14:33:32

标签: c#

我正在创建一个应用程序,它将使用另一个类的函数,打开颜色对话框,然后将颜色值返回到表单。我写过课,但我不明白为什么它会给我一个错误。错误是

  

由于'Editing.ChooseColor'返回void,因此返回关键字后面不能包含对象表达式。

我的班级代码是

        public void ChooseColor()
    {
        ColorDialog ColorDialog = new ColorDialog();
        ColorDialog.ShowDialog();
        System.Drawing.Color Color = ColorDialog.Color;
        return Color;
    }

我的表单将调用该函数并获取颜色值。谢谢你的帮助。

4 个答案:

答案 0 :(得分:0)

void告诉编译器该方法不返回任何内容。因此,尝试返回某些内容会导致编译器错误。

告诉编译器您要返回的类型:

public System.Drawing.Color ChooseColor()
{
    //...
}

答案 1 :(得分:0)

public void ChooseColor()
{
    ColorDialog ColorDialog = new ColorDialog();
    ColorDialog.ShowDialog();
    System.Drawing.Color Color = ColorDialog.Color;
    return Color;
}

这是公开void,如果您希望它返回一种颜色,它应该是一种颜色。

public System.Drawing.Color ChooseColor()
{
    ColorDialog ColorDialog = new ColorDialog();
    ColorDialog.ShowDialog();
    System.Drawing.Color Color = ColorDialog.Color;
    return Color;
}

答案 2 :(得分:0)

您必须返回Color

// static: you don't want "this" in the method
public static Color ChooseColor() {
  // Do not forget to Dispose IDisposable
  using (ColorDialog ColorDialog = new ColorDialog()) {
    if (ColorDialog.ShowDialog() == DialogResult.OK)
      return ColorDialog.Color; // user has selected color and clicked "OK"
    else
      // or other stub color (Color is struct, so we can't return null)
      return Color.Transparent; 
  }
}

答案 3 :(得分:0)

只有当用户在对话框中单击“确定”时,才需要使函数返回颜色:

public Color ChooseColor()
{
    ColorDialog ColorDialog = new ColorDialog();
    if(ColorDialog.ShowDialog()==DialogResult.OK)
    {
        return ColorDialog.Color;
    }
    return Color.None;
}