标签: vb.net-to-c#

VB到C#函数

哪些是从VB.Net到C#的以下运算符的等价物?

  • UBound函数()
  • LBOUND()
  • 没什么()
  • CHR()
  • LEN()
  • 用Ucase()
  • LCASE()
  • 剩下()
  • 对()
  • RTRIM()
  • LTRIM()
  • 修剪()
  • 中()
  • 更换()
  • 分裂()
  • 加入()
  • MSGBOX()
  • IIF()

c# vb.net operators vb.net-to-c#

40
推荐指数
2
解决办法
5万
查看次数

合并字符常量和字符串文字以创建另一个常量

我主要用C#编写代码,但是我在VB.NET中编写了多年.在VB中,我可以组合一个字符常量和一个字符串文字来创建其他常量,这非常方便:

Const FileExtensionSeparatorCharacter As Char = "."c
Const BillingFileTypeExtension As String = FileExtensionSeparatorCharacter & "BIL"
Run Code Online (Sandbox Code Playgroud)

现在我想在C#中做同样的事情:

const char FileExtensionSeparatorCharacter = '.';
const string BillingFileTypeExtension = FileExtensionSeparatorCharacter + "BIL";
Run Code Online (Sandbox Code Playgroud)

但这给了我一个编译器错误:

分配给'BillingFileTypeExtension'的表达式必须是常量

有没有理由我不能在C#中做到这一点?

.net c# vb.net vb.net-to-c#

19
推荐指数
2
解决办法
1835
查看次数

VB.NET选择...在C#中等效的Case语句

我刚开始使用C#,我有几个问题.有没有办法像下面这样编写VB.NET Select语句的C#等价物?

Select Object.Name.ToString()
    Case "Name1"
        'Do something
    Case "Name2"
        'Do something else
    Case Else
        'Do the default action
End Select
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.


感谢到目前为止的输入,如果我将几个控件挂钩到一个事件处理程序,如下所示,我想对每个控件执行稍微不同的操作:

Private Sub Button_Click(sender as Object, e as EventArgs) _
  Handles button1.Click, Button2.Click

    'do a general activity

    Select CType(sender, Button).Name
        Case button1.Name
            'do something
        Case button2.Name
            'do something else
        Case Else
            'do the defalut action
    End Select
End Sub
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中执行上面的select语句而不必使用嵌套的ifs?

c# vb.net vb.net-to-c#

18
推荐指数
3
解决办法
3万
查看次数

C#内部VS VBNET好友

对于这个问题:什么是C#相当于朋友?,我个人已回答"内部",就像Ja在答案中所做的那样!然而,Jon Skeet说在C#中没有直接等价的VB Friend.如果Jon Skeet这么说的话,我就不会这样说了!,P

我想知道当关键字internal(C#)各自的定义是什么时,它们怎么能不等同于Friend(VBNET):

朋友VBNET

声明语句中的Friend(Visual Basic)关键字指定可以从同一个程序集中访问元素,但不能从程序集外部访问.[...]

内部C#

内部:访问仅限于当前程序集.

据我了解,这些定义对我来说意义相同.

然后,当我在VB.NET中编码时,我使用Friend关键字来指定只能在声明它的程序集中访问类或属性.在C#中,我使用internal关键字指定相同.

  1. 从这个角度来看,我做错了什么吗?

  2. 我没有得到什么改进?

  3. 有人可以解释一下朋友和内部是如何或不是直接对等的?

提前感谢您的任何答案!

.net language-features keyword c#-to-vb.net vb.net-to-c#

18
推荐指数
3
解决办法
8055
查看次数

VB.NET WithEvents关键字行为 - VB.NET编译器限制?

我正在努力熟悉C#,就像我使用VB.NET(我工作场所使用的语言)一样.关于学习过程的最好的事情之一是,通过了解另一种语言,你倾向于更多地了解你的主要语言 - 像这样的小问题弹出:

根据我发现的消息来源和过去的经验,VB.NET中声明为WithEvents的字段能够引发事件.据我所知,C#不具有直接等效-但我的问题是:场没有这个关键字在VB.NET不能引发事件,有没有一种方法来创建在C#中此相同的行为呢?VB编译器是否只是阻止这些对象处理事件(实际上允许它们像往常一样引发事件)?

我只是好奇; 我对这个问题没有任何特别的申请......

.net c# vb.net clr vb.net-to-c#

15
推荐指数
1
解决办法
1万
查看次数

C#相当于VB.NET的Catch ......当

在VB.NET中,我经常Catch…When:

Try
    …
Catch e As ArgumentNullException When e.ParamName.ToUpper() = "SAMPLES"
    …
End Try
Run Code Online (Sandbox Code Playgroud)

是否有C#相当于Catch…When

如果可能ifcatch话,我不想诉诸于使用声明.

c# vb.net exception-handling vb.net-to-c#

14
推荐指数
3
解决办法
4511
查看次数

C#的最佳选择"On Error Resume Next"是什么?

如果我为我的C#代码添加空catch块,它是否等同于VB.NET的"On Error Resume Next"语句.

try
{
    C# code;
}

catch(exception)
{
}
Run Code Online (Sandbox Code Playgroud)

我问这个的原因是因为我必须将VB.NET代码转换为C#,旧代码有~200"On Error Resume Next"语句虽然我try {} catch {}在我的新代码中使用了正确的,但是有一个更好的选择?

c# vb.net error-handling vb.net-to-c#

14
推荐指数
6
解决办法
3万
查看次数

什么是ChrW(e.KeyCode)的C#等价物?

在VB.NET 2008中,我使用了以下语句:

MyKeyChr = ChrW(e.KeyCode)
Run Code Online (Sandbox Code Playgroud)

现在我想将上面的语句转换为C#.

有任何想法吗?

c# vb.net keycode char vb.net-to-c#

14
推荐指数
2
解决办法
2万
查看次数

VB.NET和C#之间的二进制移位差异

我刚刚在翻译一些数据时发现了一个有趣的问题:

VB.NET:CByte(4) << 8返回4

但是C#:(byte)4 << 8返回1024

也就是说,为什么VB.NET:(CByte(4) << 8).GetType()返回类型{Name = "Byte" FullName = "System.Byte"}

然而C#:((byte)4 << 8).GetType()返回类型{Name = "Int32" FullName = "System.Int32"}

有没有理由为什么这两个对待二进制移位是一样的?接下来,是否有任何方法可以使C#位移与VB.NET相同(使VB.NET像C#一样执行CInt(_____) << 8)?

.net c# vb.net bit-manipulation vb.net-to-c#

11
推荐指数
3
解决办法
1734
查看次数

没有什么等于String.Empty,null不等于String.Empty,我在这里缺少什么?

在混合代码项目(VB和C#)中,我们正在调试一些旧的Visual Basic代码,如下所示:

If Request.Params("xxx") <> "" Then
   'do something
Run Code Online (Sandbox Code Playgroud)

我认为这是一个错误,因为Request.Params可能是null,在这种情况下,语句将变为错误,这不是主意.

所以我认为.我刚刚再次发现,VB Nothing和C#的null东西Nothing不一样,null而且不一样.事实上:

if(String.Empty == null)          // in C# this is always false (correct)
Run Code Online (Sandbox Code Playgroud)
If String.Empty = Nothing Then    ' in VB this is always true (????)
Run Code Online (Sandbox Code Playgroud)

这怎么可能呢?这是一些向后兼容问题吗?

.net c# vb.net vb.net-to-c#

10
推荐指数
1
解决办法
2万
查看次数