小编use*_*755的帖子

.NET控制台应用程序退出事件

在.NET中,是否有一种方法(如事件)用于检测控制台应用程序何时退出?我需要清理一些线程和COM对象.

我正在从控制台应用程序运行一个没有表单的消息循环.我正在使用的DCOM组件似乎要求应用程序泵消息.

我已经尝试向Process.GetCurrentProcess.Exited和Process.GetCurrentProcess.Disposed添加一个处理程序.

我还尝试向Application.ApplicationExit和Application.ThreadExit事件添加处理程序,但它们没有触发.也许那是因为我没有使用表格.

.net complexity-theory console-application

67
推荐指数
4
解决办法
9万
查看次数

将路径作为字符串传递而不是使用DirectoryInfo/FileInfo的充分理由

在我的新代码中,我没有使用字符串来传递目录路径或文件名.相反,我使用DirectoryInfo和FileInfo,因为它们似乎封装了大量信息.

我已经看到很多代码使用字符串来传递目录信息然后他们在长难以理解的语句中"分裂","中"和"instr",直到他们获得他们正在寻找的目录的一部分.

将路径作为字符串传递是否有充分的理由?

.net string directory

17
推荐指数
3
解决办法
1640
查看次数

获取鼠标点击DoubleClick事件的位置/按钮

有没有一种方法可以在控件DoubleClick事件中获取鼠标光标的(x,y)坐标?

据我所知,这个位置必须从全球获得:

Windows.Forms.Cursor.Position.X, Windows.Forms.Cursor.Position.Y

另外,有没有一种方法可以获得哪个按钮产生了双击?

.net double-click winforms

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

.NET默认属性错误

我有一个VB.NET项目,我可以使用索引迭代键和值字典对象的集合:


MyDictionary.Keys(idx)
MyDictionary.Values(idx)
Run Code Online (Sandbox Code Playgroud)

当此代码从测试项目中获取并放入实际项目时,我收到以下错误:

'System.Collections.Generic.Dictionary(Of Double,String).KeyCollection'无法编入索引,因为它没有默认属性.

'System.Collections.Generic.Dictionary(Of Double,String).ValueCollection'无法编入索引,因为它没有默认属性.

这是使用VB.NET和VS 2008.我不知道从一个项目到下一个会导致此错误的项目有什么区别.测试是一个控制台应用程序,该程序是一个winforms应用程序.

什么条件会导致这些集合的默认属性发生变化?

编辑 - 感谢所有答案,告诉我如何循环字典.然而,这些答案并没有回答我为什么可以在一个项目中使用索引而不在另一个项目中使用索引的问题.我是否应该无法将代码从一个.net项目复制并粘贴到另一个.net项目并使其工作相同?并且,不,选项严格,不是问题的原因.

编辑 - 尝试重现我所看到的内容:

  • 使用VS 2008创建新的VB.NET控制台应用程序
  • 将以下代码复制并粘贴到模块中:

Imports System.Collections
Imports System.Collections.Generic

Module Module1

    Public dtf As Dictionary(Of Double, String)

    Public Sub BuildDictionary()

        dtf = New Dictionary(Of Double, String)

        dtf.Add(1.0, "1")
        dtf.Add(0.0, "0")

    End Sub

    Public Sub Search()
        For idx As Integer = 0 To dtf.Keys.Count - 1
            If dtf.Keys(idx) = 0 Then
                Exit Sub
            End If
        Next
    End Sub

    Sub Main()

    End Sub

End …
Run Code Online (Sandbox Code Playgroud)

vb.net default properties

6
推荐指数
1
解决办法
5337
查看次数

在.NET中将DataTable打印到textbox/textfile

是否有预定义或"简单"的方法将数据表写入文本文件或TextBox控件(使用等宽字体),如DataTable.Print():

 Column1| Column2|
--------|--------|
      v1|      v2|
      v3|      v4|
      v5|      v6|

编辑

这是一个初始版本(vb.net) - 如果有人有兴趣或想要建立自己的版本:

Public Function BuildTable(ByVal dt As DataTable) As String

    Dim result As New StringBuilder
    Dim widths As New List(Of Integer)
    Const ColumnSeparator As Char = "|"c
    Const HeadingUnderline As Char = "-"c

    ' determine width of each column based on widest of either column heading or values in that column
    For Each col As DataColumn In dt.Columns
        Dim colWidth As Integer = Integer.MinValue
        For Each row As …
Run Code Online (Sandbox Code Playgroud)

.net printing datatable writing

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

64位VB.NET分配> 2GB的RAM(.NET错误?)

我有一个64位的VB.NET应用程序,并希望分配一个> 2GB的缓冲区.

在下面的代码中,"new"和"ReDim"都抛出"OverflowException".

当这些函数只接受带符号的32位值时,如何分配> 2GB的缓冲区?

(这可能在C#中?)

编辑 - 我正在运行带有4GB RAM的WinXP 64.

Dim width As Long = 19005
Dim height As Long = 32768

Dim buffer() As Byte = New Byte((width * height * 4) - 1) {}

Dim size As Long = (width * height * 4) - 1
ReDim buffer(size)

.net c# vb.net memory 64-bit

5
推荐指数
1
解决办法
3214
查看次数

HTTP'获取'安全性

什么是HTTP'获取'安全最佳实践?

HTTP Get get查询字符串值何时应该被遮挡?

编辑 - 我继承的应用程序具有XOR'加密'的所有查询字符串参数.它还在查询字符串中传递类似AccountID的内容.所以我想知道这些是不是很好的做法以及如果不这样做我会如何纠正这些事情.

编辑 -

我可以用来解决这个问题的一种方法是创建一个基类(这只是伪代码):


public mustinherit class QSBase

  public shared Unique as long = 0
  private m_ID as string

  public readonly property ID
    get
      return m_ID
    end get
  end property

  public sub new()
   m_ID = Unique 'somehow get a unique value for this querystring
   Unique += 1
  end sub

  public function IDQueryString() as string
    return "ID=" & m_ID
  end function

end class
Run Code Online (Sandbox Code Playgroud)

然后,对于应用程序中的每个页面,我将创建一个具有每个查询字符串值的属性的派生类.


public class QSPage1
  inherits QSBase

  private m_AccountID as string

  public readonly …
Run Code Online (Sandbox Code Playgroud)

get http

4
推荐指数
1
解决办法
2098
查看次数

确定是否可以移动或复制文件

除了尝试操作和捕获异常外,还有一种方法可以确定是否可以移动或复制文件吗?

.net copy file move

3
推荐指数
1
解决办法
1296
查看次数

枚举存储在数据库字段中

是否最好将枚举或枚举名称存储在数据库表字段中?

例如,我应该将'TJLeft'存储为字符串或它在数据库中的等效值吗?

Public Enum TextJustification
  TJLeft
  TJCenter
  TJRight
End Enum
Run Code Online (Sandbox Code Playgroud)

我目前正倾向于这个名字,因为有些人可能会在以后明确指定一个不同的值.

编辑 -

一些枚举在我的控制之下,但有些来自第三方.

database enums

3
推荐指数
1
解决办法
2757
查看次数

SyncRoot上的SyncLock

我已经创建了一个同步队列,并在调用Enqueue/Dequeue方法时在该队列的SyncRoot属性上使用SyncLock.从标准生产者/消费者类的实例调用这些方法.

这是SyncRoot属性的正确使用吗?

更好的做法是在每个类中创建一个私有共享对象并锁定它吗?

请解释一下你的推理.

vb.net multithreading synclock

3
推荐指数
1
解决办法
914
查看次数