Tag: vb.net

在C#中,是否可以使用具有不同名称的成员实现接口成员,就像在VB.NET中一样?

好吧,这是一个我要问的问题,而不是在展示良好的编码实践(这实际上可能被认为是一种不好的做法),而是在“可以”的问题上完成。 也就是说,在VB.NET中你实现了这样的接口…… Sub SomeInterfaceMember() Implements ISomeInterface.SomeInterfaceMember End Sub 而在C#中你明确地这样做(只能通过界面调用)…… void ISomeInterface.SomeInterfaceMember(){} 或者更简单地,隐式地像这样(在这种情况下你可以直接调用它,或通过接口)…… void SomeInterfaceMember(){} // <– This name matches the interface member 但是,关于VB,您也可以使用您想要的任何名称来执行此操作… Sub SomeRandomMemberName() // <– This name doesn't match the interface member Implements ISomeInterface.SomeInterfaceMember End Sub 换句话说,处理实现的方法可以具有与接口的成员名称完全不同的名称。 我只是想知道在C#中是否有类似的东西。 (是的,我知道我可以简单地做一个显式接口,然后通过另一个’wrapper’成员使用一个简单的委托给它的不同名称来访问它,但是在VB.NET中,你只需要一个方法。) 那可以吗? 标记

Lambda属性值选择器作为参数

我需要修改一个方法,以便它有一个额外的参数,该参数将采用将在内部对象上使用的lambda表达式来返回给定属性的值。 原谅我可能错误地使用术语,因为这是我第一次涉足LINQ表达式! 我试图寻找答案,但正如我所提到的,我的术语似乎已经关闭,我可以找到的例子太复杂或者处理集合函数的表达式,例如我熟悉的.Where() 。 到目前为止我所拥有的(减少版本): class MyClass { private MyObject _myObject = new MyObject() { Name = “Test”, Code = “T” }; private string MyMethod(int testParameter, ??? selector) { //return _myObject.Name; //return _myObject.Code; return ???; } } 我想称之为: string result = _myClassInstance.MyMethod(1, (x => x.Name)); 要么: string result = _myClassInstance.MyMethod(1, (x => x.Code)); 显然,我缺少的部分是MyMethod的selector参数,如何将它应用于局部变量以及在调用时如何将必需的属性传递给方法。 任何帮助将不胜感激,也是VB.NET解决方案的额外奖励点,不幸的是最终的实现需要在我们唯一的VB项目中!

为什么调试器的断点条件允许赋值语句为bool-condition?

这是非常危险的,所以我想知道为什么它是允许的。 由于我经常需要在VB.NET和C#之间切换,我有时会添加断点条件,如下所示: foo = “bah” 我想停止,如果string变量foo是”bah ,所以正确的方法是使用foo == “bah”而不是foo = “bah” 。 但它“有效”。 在编译或运行时,您不会收到任何警告或错误。 但实际上这会修改变量foo ,即使它有不同的值,它也总是”bah” 。 由于这种情况无声地发生(断点永远不会被击中),因此非常危险。 为什么允许? 我的推理错误在哪里(除了混淆C#和VB.NET语法)? 在C#中(与VB.NET相反) 赋值语句返回已分配的值,因此不是bool ,而是在这种情况下为string 。 但是如果你选中“Is True”框,断点条件必须是一个bool 。 这是一个小样本“程序”和我(德国)IDE的截图: static void Main() { string foo = “foo”; // breakpoint with assignment(foo = “bah”) instead of comparison(foo == “bah”): Console.WriteLine(foo); // bah, variable is changed from the […]

$ {basedir}位于哪里,使用NLog?

除非我完全错过它,否则我的印象是NLog文档在其示例中使用了${basedir} ,而没有解释它的位置应该是什么。 我在哪里可以找到列出所有可能选项的信息? 我定义了这个配置: 据我所知,它可以正常工作,但我还没有找到任何记录的地方。

我如何(优雅地)将字符串转换为字符串特定部分的标签?

我将在Windows窗体上的标签中输入许多字符串(我不会使用这些字符串)。 字符串将类似于以下内容: “快速的棕色狐狸在l__y猎犬身上行走” 我想在标签中显示字符串,但是将TextBox精确地覆盖在缺少字母的位置。 将会有300多个字符串,我正在寻找最简单,最优雅的方法。 如何为每个字符串准确地重新定位文本框? 编辑: MaskTextBox将无法正常工作,因为我需要多行支持。

如何以wpf格式捕捉窗口关闭按钮(窗口右上角的红色X按钮)的事件?

如何以wpf格式捕捉窗口关闭按钮(窗口右上角的红色X按钮)的事件? 我们还有关闭事件,窗口卸载事件,但是如果他点击wpf表单的关闭按钮,我们想要显示一个弹出窗口。 请帮助。

如何在.NET中扩展环境变量%CommonProgramFiles%\ system \

我有一种情况,我需要通过读取注册表设置返回目录路径。 注册表值返回格式的路径 %CommonProgramFiles%\System\web32.dll 而消费者代码期望它的格式 C:\Program Files\Common Files\System\web32.dll 如何在.net代码中解析此类目录路径?

以编程方式下载pdf

如何使用vb.NET或C#下载PDF并存储到磁盘? URL(PDF)在达到最终PDF之前会进行一些重新设置。 我试过以下但是当我尝试在本地打开时,PDF似乎已损坏, Dim PdfFile As FileStream = File.OpenWrite(saveTo) Dim PdfStream As MemoryStream = GetFileStream(pdfURL) PdfStream.WriteTo(PdfFile) PdfStream.Flush() PdfStream.Close() PdfFile.Flush() PdfFile.Close()

在.net控制台应用程序中显示消息框

如何在.net c#或vb 控制台应用程序中显示消息框? 就像是: Console.WriteLine(“Hello World”); MessageBox.Show(“Hello World”); 要么 Console.WriteLine(“Hello”) MsgBox(“Hello”) 分别在c#和vb中。 可能吗?

这是VB.NET编译器中的错误还是设计错误?

我发现C#和VB编译器之间的重载决策有所不同。 我不确定这是错误还是设计错误: Public Class Class1 Public Sub ThisBreaks() ‘ These work ‘ Foo(Of String)(Function() String.Empty) ‘Expression overload ‘ Foo(String.Empty) ‘T overload ‘ ‘ This breaks ‘ Foo(Function() String.Empty) End Sub Public Sub Foo(Of T)(ByVal value As T) End Sub Public Sub Foo(Of T)(ByVal expression As Expression(Of Func(Of T))) End Sub End Class 请注意,重载的Foo方法是否在VB中定义无关紧要。 唯一重要的是呼叫站点在VB中。 VB编译器将报告错误: […]