草庐IT

vb_forum_functions

全部标签

c# - 为什么我可以将索引器应用于 VB.Net 中的 ICollection,但不能在 C# 中

正在将一些代码从VB.Net转换为C#,当我遇到这个时,在一些使用IonicZip库的代码中:DimzipEntry1AsZipEntry=zipFile1.Entries(0)足够简单:ZipEntryzipEntry1=zipFile1.Entries[0];我在C#上遇到这个错误:Cannotapplyindexingwith[]toanexpressionoftype'System.Collections.Generic.ICollection'两者都使用相同版本的DLL,在zipFile1.Entries上都是通用的ICollection。我已经在VB.Net上测试了以下内容

c# - 将 VB 转换为 C# - My.Application.Info.DirectoryPath

以下VB(VB.NET、VisualBasic)语句的最佳C#(csharp)等价物是什么:My.Application.Info.DirectoryPathMy.Computer.ClipboardMy.Computer.Audio.PlaySystemSound()My.Application.Shutdown() 最佳答案 应用程序.ExecutablePath系统.Windows.Forms.剪贴板系统.媒体.*应用程序.退出 关于c#-将VB转换为C#-My.Applicati

c# - 如何从 C# 中的 "pure function"获得优化?

如果我有以下函数,它被认为是纯粹的,因为它没有副作用,并且在给定相同输入x的情况下总是会产生相同的结果。publicstaticintAddOne(intx){returnx+1;}据我了解,如果运行时了解功能纯度,它可以优化执行,这样就不必重新计算返回值。有没有办法在C#中实现这种运行时优化?我假设这种优化有一个名称。它叫什么?编辑:显然,我的示例函数不会从这种优化中获得太多好处。该示例是为了表达我心目中的纯度类型,而不是真实世界的示例。 最佳答案 正如其他人指出的那样,如果您想节省重新计算您已经计算过的结果的成本,那么您可以内存

c# - VB.NET 中 Program.cs 的等价物是什么

VB.NETWinForms应用程序中Program.cs的等价物是什么?我需要将我的.CS应用移至VB.NET。因为我在Program.cs中的WinForms项目中没有表单,所以我执行以下操作:Application.Run(newMyForm(parm1,parm2);如何在VB.NET中移动这段代码?谢谢 最佳答案 默认情况下,VB.NET应用程序使用神秘的Windows应用程序框架,这意味着构建过程会为您添加一个入口点,它会自动运行您用作主窗体的任何窗体。您可以通过项目属性>应用程序>Windows应用程序框架属性访问这些

C# 版本的 __FUNCTION__ 宏

有没有人对C#版本的C++__FUNCTION__宏有好的解决方案?编译器似乎不喜欢它。 最佳答案 尝试改用它。System.Reflection.MethodBase.GetCurrentMethod().NameC#没有像C++那样的__LINE__或__FUNCTION__宏,但是有等价物 关于C#版本的__FUNCTION__宏,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

c# - VB 的 "Dim"语句在 C# 中的等价物是什么?

拿起C#,除了示例之外,似乎找不到任何有用的引用。那么,C#中的Dim是什么? 最佳答案 在VB中,Dim声明了一个特定类型的变量(或者变量类型,如果你没有指定的话)。如果您DimxasFoo,这将声明一个名为x的Foo类型的变量。在C#中,等同于声明类型后跟变量名,如下所示:Foox;inti;您也可以在同一步骤中分配:Foox=newFoo();inti=6;C#支持类型推断,所以你也可以这样做://Compilerinferstypeofxandibasedonthisassignment.varx=newFoo();//xi

c# - Roslyn 模型是否以 C#/VB.NET 为中心以至于现在和将来都无法进行 XAML 分析?

我刚读过theblogentrybyJetBrains(Resharper)thatsuggeststhatRoslyncouldneverdoXAMLanalysis:AnothercoredifferenceisthatRoslyncoversexactlytwolanguages,C#andVB.NET,whereasReSharperarchitectureismultilingual(转自resharper博客)对于外行,Resharper可以对XAML代码进行非常好的静态分析,允许代码完成和与C#一起重构。我很好奇。Roslyn架构的通用性是否足以扩展到除C#和VB.Net

C# P/调用 : Marshalling structures containing function pointers

对于接下来冗长的介绍,我们深表歉意。我需要比我更了解P/Invoke内部结构的人的见解。以下是我如何将包含函数指针的结构从C编码到C#。我想知道这是否是最干净和/或最有效的方式。我正在与一个用C编码的nativeDLL交互,它提供以下入口点:void*getInterface(intid);您必须传递getInterface(int)以下枚举值之一:enumINTERFACES{FOO,BAR};它返回一个指向包含函数指针的结构的指针,例如:typedefstructIFOO{void(*method1)(void*self,inta,floatb);void(*method2)(vo

c# - 为什么C#null在VB6中被翻译成Empty,而不是Nothing

我有一个引用VB6dll的C#应用程序。当我将null从C#传递到VB6dll函数时,null在VB6中被翻译为值Empty(值),而不是Nothing(对象)。例如://functioninvb6dllthatreferencedbyc#appPublicSubTestFunc(ByValoValueAsVariant){...ifoValueisNothingthensetoValue=someObjectendif...}//mainc#codeprivatevoidForm1_Load(objectsender,EventArgse){objecttestObject=newo

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

我正在努力变得像熟悉VB.NET(我工作场所使用的语言)一样熟悉C#。学习过程中最好的事情之一是,通过学习另一种语言,您往往会更多地了解您的主要语言——像这样的小问题会弹出:根据我发现的来源和过去的经验,VB.NET中声明为WithEvents的字段能够引发事件。我知道C#没有直接等效项——但我的问题是:VB.NET中没有this关键字的字段不能引发事件,有没有办法在C#中创建同样的行为?VB编译器是否简单地阻止这些对象处理它们的事件(同时实际上允许它们像往常一样引发事件)?我只是好奇;我对这个问题没有任何特定的应用...... 最佳答案