Tag: vb.net

带有.Years和.Months的Real Timespan对象

请考虑以下两种情况:场景1)。 今天是2012年5月1日,场景2)。 今天是2012年9月1日。 现在,请考虑我们在我们的网页上写下以下关于某人留下的评论:“此评论是在3个月和12天前写的”。 即使声明完全相同,这两种情况下的天数也总是不同。 在情景1中,“3个月和12天”将等于102 days 。 但是,在场景2中,“3个月和12天”将是104 days ! 现在,谈谈我的观点,让我们使用一个不同的例子,并说有人在2013年1月30日在我们的网站上留下评论,今天是2013年3月10日。我们真实的TimeSpan对象需要知道这个相对日期,并且可以计算以下内容: 三月有10天, 1月1日(从30日到31日)。 2月是一个月,不管它有多少天(即使它是28天)。 所以,这意味着10天+ 1天+ 1个月总计,转换为此This comment was posted 1 Month and 11 Days ago 。 现在,如果您使用MS样式的TimeSpan对象(或任何语言的任何TimeSpan对象),它将为您提供从1月30日到3月10日(39天)的天数,并且因为TimeSpan对象不存储相对日期(我们减去获得TimeSpan的基数/初始日期),如果你问它有多少个月和几天,它会假设一个月内有30天,甚至最差,大于30天的平均值,并在几天内返回其余的,所以要到39天,它会告诉你它已经是1个月和9天,你会得到This comment was posted 1 Month and 9 Days ago消息。 请记住,这两种情况都具有相同的开始日期和相同的当前/结束日期,是Microsoft TimeSpan对象,不允许我们告诉它应该考虑2013年2月,给了我们一个完全不同的TimeSpan,关闭整整2天。 它实际上对我们撒了谎。 问题是,人们会相信这一点,谁知道他们可能有什么看法,他们对过去的看法如何改变,以及他们在尝试重建过去内部事件时可能做出的决定和生活选择,而从不注意或理解代表时间的缺点和固有的失败,这在当今无处不在。 他们不会理解编程语言没有实现(或关心)上个月有31天,反对30,29或28 – 反之亦然,并且当你增加TimeSpan时这会增加。 这是本文的核心问题。 我知道大多数人都不会关心这种差异(但要确保我们有些人这样做,并且不能在我们背上这样做),如果这不打扰你,那没关系。 我希望它不会打扰我,我会节省一些时间,压力和失望。 如果这不是一个麻烦,您可以使用该function有效地文本显示相对时间(可定制为从几秒到几年的1到6个节点),而不是使用它提供的通常可忽略的精度。 令我失望的是,我注意到没有真正的时间跨度对象,如果你得到一个时间跨度,做一个.years或.months你什么也得不到,你只会得到.days和更低,因为timeSpan对象不携带什么都可以告诉它创建时间的是哪个月或哪一年。 因此,它永远不会真正知道自每个月的日子在一年内变化多少个月,甚至超过闰年。 为此,我将发布一个我开发的函数,以获得准确的读数,并能够在我的ASP.NET网页上返回如下内容… 发表于4年,3个月,14天,15小时,18分钟和24秒之前 我想有一个…… timeSpan.GetActualNumberOf[Months/Days/Hours/etc] […]

32位和64位.NET(4)应用程序之间的差异

32位和64位.NET(4)应用程序之间有什么区别? 通常,32位应用程序在64位计算机上运行时会出现问题,反之亦然。 我知道我可以将整数声明为int32和int64(当然32位系统上的int64会产生问题)。 编程32 OR 64位或32位和64位兼容应用程序之间是否存在其他差异?

从图像中删除周围的空白

我有一块从客户那里收到的产品图片。 每个产品图像都是一张图片,它是用白色背景拍摄的。 我想裁剪图像的所有周围部分,但只留下产品在中间。 这可能吗? 举个例子:[ http://www.5dnet.de/media/catalog/product/d/r/dress_shoes_5.jpg] [1 ] 我不希望删除所有白色像素,但我确实想要裁剪图像,以便最顶部的像素行包含一个非白色像素,最左边的垂直像素行包含一个非白色像素,底部 – 大多数水平像素行包含一个非白色像素等。 C#或VB.net中的代码将不胜感激。

为什么我可以通过索引访问KeyCollection / ValueCollection中的项目,即使它没有实现IList(Of Key)?

我注意到一个奇怪的VB.NET事情。 从这个问题来看,我提供了一种方法来通过索引来访问字典的KeysCollection和ValuesCollection键和值,以获得第一项。 我知道它只在SortedDictionary有意义,因为普通的Dictionary 没有被排序 (好吧,你不应该依赖它的顺序)。 这是一个简单的例子: Dim sortedDict As New SortedDictionary(Of DateTime, String) sortedDict.Add(DateTime.Now, “Foo”) Dim keys As SortedDictionary(Of DateTime, String).KeyCollection = sortedDict.Keys Dim values As SortedDictionary(Of DateTime, String).ValueCollection = sortedDict.Values Dim firstkey As DateTime = keys(0) Dim firstValue As String = values(0) 但我很惊讶这个问题的提问者说它没有编译,而它编译并且对我有用而没有问题: System.Diagnostics.Debug.WriteLine(“Key:{0} Value:{1}”, firstkey, firstValue) ‘ Key:04/29/2016 10:15:23 Value:Foo 那么为什么我可以使用它,就像有一个索引器,如果在SortedDictionary(Of TKey, TValue).KeyCollection没有实际的一个SortedDictionary(Of […]

在.NET程序执行时查看变量存储位置的任何工具? 它是在堆栈还是堆上?

从很久以前我想知道一个变量(它是值类型或引用类型)的确切位置。 它会在堆栈还是堆上? 我也读过Eric Lippert的文章 。 出于好奇,我想要的是交叉validation我所理解的内容。 任何工具都存在相同的? 或者以任何方式我会知道,当.NET程序被执行时,哪些变量存储在堆栈中? 哪个存储在堆上? 谢谢

Parallel.For步长

有谁知道是否有任何重载允许我在Parallel.For循环中指定步长? c#或VB.Net中的样本会很棒。 谢谢,贡萨洛

静态/在VB.NET中共享和C#可见性

我面对VB.NET和C#(.NET2)中的情况,具有静态/共享成员的可见性。 在VB.NET中我觉得有点奇怪: public class A { private static A instance; public static A Instance { get { return instance; } } public string Name { get { } } } 用法 : A.Instance.Name // ONLY名称是“可见的” VB.NET: Public Class A Private Shared _instance As A Public Shared ReadOnly Property Instance() As A Get Return _instance End […]

如何在VB.Net中使用不安全的代码?

我想知道VB.NET相当于以下C#代码: unsafe { byte* pStart = (byte*)(void*)writeableBitmap.BackBuffer; int nL = writeableBitmap.BackBufferStride; for (int r = 0; r < 16; r++) { for (int g = 0; g < 16; g++) { for (int b = 0; b < 16; b++) { int nX = (g % 4) * 16 + b; int nY = r*4 […]

转换为UCS2

Vb.net(或C#)中是否有任何函数可以编码UCS2中的字符串? 谢谢

C#扩展方法是否允许通过引用传递参数?

是否真的不可能在C#中创建一个扩展方法,其中实例作为引用传递? 这是一个示例VB.NET控制台应用程序: Imports System.Runtime.CompilerServices Module Module1 Sub Main() Dim workDays As Weekdays workDays.Add(Weekdays.Monday) workDays.Add(Weekdays.Tuesday) Console.WriteLine(“Tuesday is a workday: {0}”, _ CBool(workDays And Weekdays.Tuesday)) Console.ReadKey() End Sub End Module _ Public Enum Weekdays Monday = 1 Tuesday = 2 Wednesday = 4 Thursday = 8 Friday = 16 Saturday = 32 Sunday = 64 End Enum […]