使输入框类似于Visual Basic输入框

时间:2013-06-13 00:55:16

标签: c#

我创建了一个返回字符串的InputBox类,但我希望该类在退出时返回一个字符串。

我希望它的行为与Visual Basic输入框完全相同。

现在我已经将一个可变的字符串值传递给构造函数并以这种方式进行更改。但后来我意识到Visual Basic输入框更好。

myValue = InputBox(message, title, defaultValue)

如何创建我自己的InputBox类呢?我意识到我可以将VB输入框导入到c#中,但我想创建自己的自定义InputBox。

编辑:我想我之所以如此着迷的原因是因为Visual Basic允许你在不放入类名的情况下调用函数。我希望有一种方法可以在不使用委托的情况下在C#中执行此操作。我认为我的解决方案可能是创建一个封装我的表单的函数。所以也许我会重新解释我的问题是否有一种方法可以通过视觉上像一个类看起来的东西来返回一个值?

1 个答案:

答案 0 :(得分:1)

假设Visual Basic InputBox是一个类,你是不正确的。事实上,它是一种功能。这是方法定义:

Public Function InputBox( _
    ByVal Prompt As String, _
    Optional ByVal Title As String = "", _
    Optional ByVal DefaultResponse As String = "", _
    Optional ByVal Xpos As Integer = -1, _
    Optional ByVal YPos As Integer = -1 _
) As String

深入挖掘,它作为Interaction类的方法驻留在Microsoft.VisualBasic.dll中。

模拟VB.NET语法糖的最接近方法是隐式将自定义InputBox转换为string,例如:

public class InputBox
{
    private string _title;

    public InputBox(string title)
    {
        _title = title;
    }

    public static implicit operator string(InputBox from)
    {
        return from._title;
    }
}

// .. elsewhere ..
 string title = new InputBox("Test");
 Console.WriteLine(title); // prints Test

..虽然我不确定我是否会亲自这样做。

显然title就是一个例子。您的InputBox类会生成Form(或从中继承)并将输入返回到表单中。

..请问为什么你要复制这个?