Tag: vb.net

Roslyn VisualBasic.ScriptEngine不识别在C#上编写的hostObject

我们的项目需要具备简单的业务规则,我们的客户可以在Visual Basic中编写脚本。 虽然我们的主程序是用C#编写的 客户想要执行的脚本可能是这样的(我正在考虑最简单的可能情况) var vbCode = @” If (Row.Code = 12) Then Row.MappedCode = 1 End If”; 所以我使用Code和MappedCode属性在C#中创建了一个RowData类 namespace ScriptModel { public class RowData { public int Code { get; set; } public int MappedCode { get; set; } } } 我创建了一个简单的宿主对象类 namespace ScriptModel { public class HostObjectModel { public RowData Row { get; […]

使用LINQ时VB TryCast和C#“as”运算符之间的差异

我有一个LINQ查询来检索整数列的最大值。 该列在数据库中定义为NOT NULL。 但是,在SQL中使用MAX聚合函数时,如果查询没有返回任何行,则会得到NULL结果。 这是我在Northwind数据库中使用的LINQ查询示例,用于演示我正在做什么。 var maxValue = (from p in nw.Products where p.ProductID < 0 select p.ProductID as int?).Max(); C#正确解析此查询,而maxValue的类型为int?。 此外,生成的SQL是完美的: SELECT MAX([t0].[ProductID]) AS [value] FROM [Products] AS [t0] WHERE [t0].[ProductID] < @p0 问题是,如何使用VB.NET对其进行编码并获得相同的结果? 如果我直接翻译: dim maxValue = (from p in Products where p.ProductID < 0 select TryCast(p.ProductID, integer?)).Max() 我收到编译错误。 TryCast仅适用于引用类型,而不适用于值类型。 TryCast和“as”在这方面略有不同。 C#为装箱处理值类型做了一些额外的工作。 所以,我的下一个解决方案是使用CType而不是TryCast: […]

DataGridView.Editmode = EditOnEnter。 如何选择要删除的行?

当我使用EditMode = EditOnEnter时,单元格在我选择行时进入editmode。 用户很难选择RowSelector删除行。 你知道任何诡计吗?

检测DST当前是否已启用

我需要找到一种简单的方法来了解本地计算机是否启用了“自动调整夏令时的时钟”选项。 如果选项打开,我需要知道它当前是否已应用(即它是否是当前系统中的DST)。 提前致谢

如何在c#中使用open xml sdk将doc转换为docx

请帮助我使用open xml sdk或除word自动化之外的任何其他方法将.doc文件转换为.docx。 提前致谢。

中止以Delegate.BeginInvoke开头的线程

免责声明 :我知道Thread.Abort是邪恶的。 我使用它作为最后的手段,因为一些I / O函数(例如,在不存在的网络共享上使用File.Exists )会阻塞大量的时间,并且不允许您指定超时。 问题 :是否可以使用Delegate.BeginInvoke中止工作线程(如在Thread.Abort )或者我是否必须自己进行线程处理?

TcpClient.Connected返回true但客户端未连接,我可以使用什么?

在VB.net中,我使用TcpClient来检索数据字符串。 我一直在检查.Connected属性以validation客户端是否已连接,但即使客户端断开连接,它仍然返回true。 我可以使用什么作为解决方法? 这是我当前代码的精简版: Dim client as TcpClient = Nothing client = listener.AcceptTcpClient do while client.connected = true dim stream as networkStream = client.GetStream() dim bytes(1024) as byte dim numCharRead as integer = stream.Read(bytes,0,bytes.length) dim strRead as string = System.Text.Encoding.ASCII.GetString(bytes,0,i) loop 我想,如果客户端断开连接,至少GetStream()调用会抛出一个exception,但是我已经关闭了另一个应用程序但它仍然没有… 谢谢。 编辑轮询客户端。建议使用但不能解决问题。 如果客户端没有’acutally’连接可用,则返回0。 关键是我试图让连接保持打开状态,并允许我通过同一个套接字连接多次接收数据。

为什么附加属性属性更改事件只触发一次?

我有一个绑定到对象列表的列表框。 对于每个列表项,我想要一个矩形,其填充颜色由绑定对象的一些属性确定。 所以我做了以下事情: 确保在我的对象上实现了INotifyPropertyChanged。 创建了一个类来公开我感兴趣的属性作为附加属性。 将对象的属性绑定到矩形的附加属性 创建了一个样式,该样式使用触发器根据附加属性设置矩形填充。 这是有效的,但只是第一次对象的属性发生变化。 之后,附加属性似乎在数据对象的属性更改时不会收到通知。 我已经仔细检查过,我的数据对象正在引发INotifyPropertyChanged事件。 可能是什么问题呢? 风格: 附属物类: Public Class RecordAttachment Public Shared ReadOnly RecordStateProperty As DependencyProperty Public Shared ReadOnly IsDeletedProperty As DependencyProperty Shared Sub New() RecordStateProperty = DependencyProperty.RegisterAttached(“RecordState”, _ GetType(Model.RecordState), _ GetType(RecordAttachment), _ New PropertyMetadata(Model.RecordState.Unchanged, AddressOf RecordStatePropertyChanged)) IsDeletedProperty = DependencyProperty.RegisterAttached(“IsDeleted”, _ GetType(Boolean), _ GetType(RecordAttachment), _ New PropertyMetadata(AddressOf DeletedPropertyChanged)) End […]

VB.Net中的主要function在哪里

我已经接管了VB.Net WinForms应用程序的支持。 我实际上是ac#developer并且更熟悉c#项目中visual studio项目的设置。 现在我试图确定我的应用程序崩溃在特定的XP安装上的原因,我在这里阅读了这个建议 http://social.msdn.microsoft.com/forums/en-US/winformssetup/thread/53c2de93-ab33-41d0-b5dd-7ca5fbfa5c24/ 在main函数中添加try catch块。 这是在从底部的第5个post中建议的。 (我将在下面引用它)但是,如果我查看VB.Net visual studio项目,我找不到Main()过程。 我找到的是一个名为“我的项目”的灰色文件夹,里面有一个“Application.myapp”文件。 此文件具有关联的设计器文件,但如果单击它,我会看到以下xml: true MDIMain false 0 true 0 true 所以任何人都可以启发我到这个VB.Net项目的实际主程序调用的位置,以便我可以尝试捕获正在发生的exception。 如果,正如我怀疑的那样,我的VB.Net项目中实际上没有主程序,有人可以告诉我如何在我的项目中执行以下操作: [STAThread] static void Main() { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } catch (System.IO.FileNotFoundException ex) { MessageBox.Show(ex.Message + ” \n\n\n” + ex.StackTrace); } }

.NET中的BODMAS原则

我今天发现.NET框架在进行计算时遵循BODMAS操作顺序。 这是按以下顺序进行的计算: 括号 命令 师 乘法 加成 减法 但是我已经四处搜索,找不到任何certificate.NET 确实遵循这个原则的文档,是否有这样的文档? 如果你能指出我正确的方向,我将不胜感激。