Tag: vb.net

为什么C#在基础构造函数之前设置私有变量,而VB.NET则反其道而行之?

有一个问题比较C#代码和VB.NET,看似相同的代码之间的结果是完全不同的。 ( 我编写了一个程序,允许两个类“战斗”。无论出于何种原因,C#总能获胜.BB.NET有什么问题? ) 给出的解释是C#将初始化类字段,然后调用基础构造函数,但VB.NET完全相反。 我的问题是 – 为什么? 这些语言有不同的技术原因吗? 乍一看,似乎任何一种方法都同样有效,但我无法理解为什么他们不会选择相同的方法。 编辑:正如’Jeffrey L Whitledge’指出的那样,VB6没有inheritance,所以我认为我们不能说“保持VB.NET和VB6更紧密相关”。

我如何作为代表传递财产?

这是一个理论问题,我已经找到了解决问题的方法,这使我走上了不同的道路,但我认为这个问题仍然很有意思。 我可以像对待方法一样将对象属性作为委托传递吗? 例如: 假设我有一个数据读取器加载了数据,并且每个字段的值需要传递到已经检查过DBNull的不同类型的属性中。 如果试图获得单个字段,我可能会写如下: if(!rdr[“field1”].Equals(DBNull.Value)) myClass.Property1 = rdr[“field1”]; 但是,如果我说100个字段,那很快就会变得笨拙。 执行此操作的调用有两种方式可能看起来不错: myClass.Property = GetDefaultOrValue(rdr[“field1”]); //Which incidentally is the route I took 作为扩展方法,它看起来也很不错: myClass.Property = rdr[“field1”].GetDefaultOrValue(); 要么: SetPropertyFromDbValue(myClass.Property1, rdr[“field1”]); //Which is the one that I’m interested in on this theoretical level 在第二个实例中,属性需要作为委托传递才能进行设置。 所以问题分为两部分: 这可能吗? 那会是什么样的? [因为这只是理论上的,VB或C#中的答案对我来说同样可以接受] 编辑:这里有一些光滑的答案。 谢谢大家。

使用Fluent NHibernate执行Sql语句

基本上我希望能够做到这一点: session.ExecuteSql(“…”); 我不需要它映射到任何实体或返回任何值。 有什么建议?

如何避免使用枚举?

在问这里问题之前 ,我从未认为(枚举)是“坏事”。 对于那些认为它们不是最佳实践的人,有哪些方法/模式可以避免在代码中使用它们? 编辑: public Enum SomeStatus Approved = 1 Denied = 2 Pending =3 end Enum

逗号“izing”一个项目列表

给定一个字符串列表,将这些字符串连接成逗号分隔列表的最佳方法是什么,最后没有逗号。 (VB.NET或C#)(使用StringBuilder或String Concat。) Dim strResult As String = “” Dim lstItems As New List(Of String) lstItems.Add(“Hello”) lstItems.Add(“World”) For Each strItem As String In lstItems If strResult.Length > 0 Then strResult = strResult & “, ” End If strResult = strResult & strItem Next MessageBox.Show(strResult)

在Rackspace(Mosso)Cloud中托管时检查SSL

我正在使用Request.IsSecureConnection来检查SSL并在适当的地方重定向。 在Rackspace的云上运行我的asp.net网站时,服务器在SSL集群后运行,因此IsSecureConnection将始终返回false。 检查URL是否包含“https://”,始终为false,检查端口等等也是如此。因此网站陷入了大重定向循环。 是否有其他方法可以检查SSL并在适当的位置重定向? 有人在Rackspace的云上实际做过这个吗? Public Class SecurityAwarePage Inherits Page Private _requireSSL As Boolean = False Public Property RequireSSL() As Boolean Get Return _requireSSL End Get Set(ByVal value As Boolean) _requireSSL = value End Set End Property Private ReadOnly Property IsSecure() As Boolean Get Return Request.IsSecureConnection End Get End Property Protected Overrides Sub OnInit(ByVal e […]

EF4:LINQ 2实体查询在C#中工作,但在VB中不工作

[编辑:我在下面留下了原始问题,有一些更多的上下文和代码来重现问题。 下面的简短版本包含问题的本质] 简短版本:下面的查询抛出一个System.NotSupportedException:“无法将类型’System.Linq.IOrderedQueryable 1′ to type ‘System.Linq.IQueryable强制转换1’ to type ‘System.Linq.IQueryable to Entities仅支持转换实体数据模型基元类型。” 仅在VB.Net版本中引发exception。 转换为C#时,不会引发exception。 Dim doesThisCrash = From outerOrder In orders Where outerOrder.ProductId = (From p In products Join o In orders On p.Id Equals o.ProductId Order By p.Id Select p.Id).FirstOrDefault() Select outerOrder doesThisCrash.ToList() 因此,为了使其崩溃,似乎我们需要一个子查询,其中原始ObjectSet(订单)与另一个ObjectSet(产品)连接,并且有序。 仅使用订单或产品集时,不会发生崩溃。 当省略Order By时,也没有崩溃。 我倾向于认为这是一个(VB.Net)编译器错误,除非有一些明显我在这里忽略的东西…… 现在我的问题仍然存在: 为什么一个看似完全相同的查询在C#中工作但在VB中不起作用? 这个查询可以在VB.Net中工作吗? [/编辑] 可选,更长版本(原始问题): 我的域看起来非常不同,但我将问题转换为更简单的版本,具有以下实体(注意:我实际上使用.edmx设计器定义了这些,因此这是一个简化版本): […]

配置字符串的winforms连接属性对话框

有没有办法在运行时显示连接字符串浏览(对于数据库)的连接属性对话框? 因为我希望用户能够使用GUI连接到各种数据库。 与visual studio连接属性对话框中的相同。 提前致谢 http://sofzh.miximages.com/c%23/www.freeimagehosting.net http://sofzh.miximages.com/c%23/www.freeimagehosting.net

.NET中的被动日志记录是否可行?

我经常对我必须包含在我的代码中的日志记录数量感到沮丧,这让我想知道是否有更好的做事方式。 我不知道这是否已经完成或是否有人提出了更好的想法,但我想知道是否有人知道将“记录器”“注入”应用程序,以便被动地监视线程并安静地记录日志流程发生时不必执行以下操作: public void MyProcess(int a, string b, object c) { log( String.Format( “Entering process MyProcess with arguments: [a] = [{0}]; [b] = [{1}]; [c] = [{2}]”, a.ToString(), b, c.ToString() ); try { int d = DoStuff(a) log( String.Format( “DoStuff({0}) returned value {1}”, a.ToString(), d.ToString() ) ); } catch (Exception ex) { log( String.Format(“An exception […]

将图像文件从url复制到本地文件夹?

我有一个图片的url。 例如“ http://sofzh.miximages.com/c%23/abc.jpg ”。 我希望将本地文件夹中的URL复制到“c:\ images \”; 当我将该文件复制到文件夹中时,我必须将图像重命名为“c:\ images \ xyz.jpg”。 我们怎么能这样做?