Questions tagged «vb.net»

Visual Basic.NET(VB.NET)是一种多范式,托管的,类型安全的,面向对象的计算机编程语言。与C#和F#一起,它是针对.NET Framework的主要语言之一。VB.NET可以看作是Microsoft Visual Basic 6(VB6)的演进,但可以在Microsoft .NET Framework上实现。请勿将此标签用于VB6,VBA或VBScript问题。

3
VB.NET是否等效于C#属性速记?
是否有一个等效于C#的VB.NET: public string FirstName { get; set; } 我知道你能做 Public Property name() As String Get Return _name.ToString End Get Set(ByVal value As String) _name = value End Set End Property 但我似乎无法在Visual Basic速记上找到答案。


9
虚无与虚无
没有人在这里用VB.NET和有强烈的偏好支持或反对IsNothing,而不是Is Nothing(例如,If IsNothing(anObject)或If anObject Is Nothing...)?如果是这样,为什么? 编辑:如果您认为它们都同样可以接受,您是否认为最好选择一个并坚持使用,还是可以将它们混合在一起?
130 vb.net  nothing 


30
该名称在XAML中的命名空间错误中不存在
在VB.NET WPF应用程序上使用VS2012。我有一个用于学习WPF的简单MusicPlayer教程应用程序。我正在逐步将本教程的C#版本转换为VB.NET。 它在应用程序中有2个类,它们都在同一个命名空间下。我可以在XAML中引用名称空间,但是当我尝试在XAML中引用类对象时,出现错误,并且无法编译。 奇怪的是,IntelliSense既可以通过xmlns:c =标记引用名称空间,也可以在使用键入类对象时很好地工作, <c: 但是该对象带有下划线,并且在尝试在设计器中构建或工作时会生成错误。 .vb类文件位于名为\ Controls的文件夹中。主项目根命名空间特意留为空白。该类是这样编码的... Namespace MusicPlayer.Controls Public Class UpdatingMediaElement .... code here End Public End Namespace xaml看起来像这样 (<Window >标记中定义的命名空间 xmlns:c="clr-namespace:MusicPlayer.Controls" (在中定义的对象<Grid>) <c:UpdatingMediaElement Name="MyMediaElement" /> (显示错误)名称空间“ clr-namespace:MusicPlayer.Controls”中不存在名称“ UpdatingMediaElement”。 不确定出什么问题或如何解决?

4
如何使用linq表达式展平嵌套对象
我正在尝试展平这样的嵌套对象: public class Book { public string Name { get; set; } public IList<Chapter> Chapters { get; set; } } public class Chapter { public string Name { get; set; } public IList<Page> Pages { get; set; } } public class Page { public string Name { get; set; } …
125 c#  .net  vb.net  linq 

6
在vb.net中嵌套/中断的退出
如何摆脱vb.net的嵌套或循环? 我尝试使用exit用于,但是它仅跳跃或中断了一个for循环。 我该如何做到以下几点: for each item in itemList for each item1 in itemList1 if item1.text = "bla bla bla" then exit for end if end for end for

14
VB真的不区分大小写吗?
我不是要在这里开始争论,但是无论出于何种原因,通常都说Visual Basic不区分大小写,而C语言则不(这在某种程度上是件好事)。 但是,这是我的问题:Visual Basic到底不区分大小写的地方是什么?当我键入... Dim ss As String Dim SS As String ...在Visual Studio 2008或Visual Studio 2010 IDE中,第二个警告为“ 当前块中已声明局部变量SS ”。在VBA VBE中,它不会立即引发错误,而是会自动更正情况。 我在这里是否缺少Visual Basic不区分大小写的这种说法?(此外,如果您知道或愿意回答,那为什么会是一件坏事?) 我为什么还要问这个问题? 多年来,我已经在其许多方言中使用Visual Basic,有时是作为爱好者,有时是工作组中与小型企业相关的程序。截至过去六个月,我一直在从事一个大型项目,该项目比我预期的要大得多。C#中有很多示例源代码。我没有强烈的学习C#的愿望,但是如果我错过了C#提供的东西,而Visual Basic没有提供(相反,VB.NET提供了XML Literals),那么我想进一步了解该功能。因此,在这种情况下,经常有人争辩说C语言区分大小写,这很好,而Visual Basic不区分大小写,这是不好的。我想知道... Visual Basic不区分大小写的精确程度是多少,因为无论我是否愿意,代码编辑器中的每个示例都区分大小写(表示大小写已得到纠正)。 如果VB.NET案例以某种方式限制了我对代码的处理能力,这是否足以让我考虑使用C#?

30
VB.NET的隐藏功能?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它当前不接受新的答案或互动。 我已经学习了很多有关C#的隐藏功能的知识,当我找不到VB.NET的类似内容时,我感到很惊讶。 那么其隐藏的或鲜为人知的功能有哪些呢?

27
如何获取特定类型(按钮/文本框)的Windows窗体形式的所有子控件?
我需要获取类型为x的表单上的所有控件。我敢肯定,我曾经看过使用以下代码的代码: dim ctrls() as Control ctrls = Me.Controls(GetType(TextBox)) 我知道我可以遍历所有使用递归函数让孩子使用的控件,但是有没有更简单或更直接的东西,也许像下面这样? Dim Ctrls = From ctrl In Me.Controls Where ctrl.GetType Is Textbox
120 c#  .net  vb.net  winforms  controls 

7
测量代码执行时间
我想知道一个过程/功能/命令需要花费多少时间来进行测试。 这是我所做的,但是我的方法是错误的,因为如果秒的差为0,则无法返回经过的毫秒数: 请注意,睡眠值是500毫秒,所以经过的秒数是0,那么它就不能返回毫秒。 Dim Execution_Start As System.DateTime = System.DateTime.Now Threading.Thread.Sleep(500) Dim Execution_End As System.DateTime = System.DateTime.Now MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _ DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _ DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _ DateDiff(DateInterval.Second, Execution_Start, Execution_End), _ DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60)) 有人可以告诉我一种更好的方法吗?也许与TimeSpan? 解决方案: Dim Execution_Start As New Stopwatch Execution_Start.Start() Threading.Thread.Sleep(500) MessageBox.Show("H:" & Execution_Start.Elapsed.Hours …
120 c#  .net  vb.net  datetime  timespan 

9
写没有字节顺序标记(BOM)的文本文件吗?
我正在尝试使用带有UTF8编码的VB.Net创建文本文件,而没有BOM。谁能帮我,怎么做? 我可以使用UTF8编码写入文件,但是如何从其中删除字节顺序标记? edit1:我已经尝试过这样的代码; Dim utf8 As New UTF8Encoding() Dim utf8EmitBOM As New UTF8Encoding(True) Dim strW As New StreamWriter("c:\temp\bom\1.html", True, utf8EmitBOM) strW.Write(utf8EmitBOM.GetPreamble()) strW.WriteLine("hi there") strW.Close() Dim strw2 As New StreamWriter("c:\temp\bom\2.html", True, utf8) strw2.Write(utf8.GetPreamble()) strw2.WriteLine("hi there") strw2.Close() 1.html仅使用UTF8编码创建,而2.html使用ANSI编码格式创建。 简化方法-http: //whatilearnttuday.blogspot.com/2011/10/write-text-files-without-byte-order.html

10
自定义编译器警告
在.Net中使用ObsoleteAtribute时,它会向您提供编译器警告,告知您对象/方法/属性已过时,应使用其他方法。我目前正在从事一个需要大量重构前员工代码的项目。我想编写一个可用于标记方法或属性的自定义属性,该方法或属性将生成编译器警告,这些警告或警告将给出我编写的消息。像这样 [MyAttribute("This code sux and should be looked at")] public void DoEverything() { } <MyAttribute("This code sux and should be looked at")> Public Sub DoEverything() End Sub 我希望它生成一个编译器警告,指出“此代码为sux,应予以注意”。我知道如何创建自定义属性,问题是如何使它在Visual Studio中生成编译器警告。


7
为什么针对VB.NET和C#中的值检查null会有区别?
在VB.NET中,会发生以下情况: Dim x As System.Nullable(Of Decimal) = Nothing Dim y As System.Nullable(Of Decimal) = Nothing y = 5 If x <> y Then Console.WriteLine("true") Else Console.WriteLine("false") '' <-- I got this. Why? End If 但是在C#中会发生这种情况: decimal? x = default(decimal?); decimal? y = default(decimal?); y = 5; if (x != y) …
110 c#  vb.net  .net-4.0  null 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.