小编5Yr*_*DBA的帖子

C# - 列表成员需要深层复制吗?

我和一个List<int>成员上课.如果我想克隆这个类的实例,我是否需要深拷贝或MemberwiseClone()浅拷贝就足够了?

如果至少有一个成员是对象的引用,我们需要一个深层副本,对吗?这是否意味着拥有List,DateTime,String,MyClass,......,是否需要深层复制?

c#

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

C#为什么sizeof不安全以及如何以安全的方式获取结构的大小?

我已经定义了一个通过套接字发送的结构.我想得到它的大小,但是sizeof不安全,对于" System.Runtime.InteropServices.MarshalSizeOf"也是如此.有没有办法以安全的方式获得它的大小?

c#

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

C#非托管对象的大小是多少?

阅读Marshal.SizeOf().它的定义说:The size returned is the size of the unmanaged object. The unmanaged and managed sizes of an object can differ.这是否意味着Marshal.SizeOf将返回定义大小,但不会返回实际的分配大小,因为可能有一些填充用于对齐?

例如:

struct MyStruct
{
   char c;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用的话,非托管对象(非托管大小)的大小将是1个字节,Marshal.SizeOf()但如果我使用,则托管对象(托管大小)可能是2或4个字节sizeof(.我对吗?

c#

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

char是否占用数据库中的1个字节?

char是否占用数据库中的1个字节?

编辑:如果我将列定义为varchar(1),它会为我保留1或2个字节吗?

database database-design

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

C#connectionString加密问题

我正在学习如何为我们的C#(3.5)应用程序加密ConnectionString.我阅读了关于保护连接字符串的.Net Framwork开发人员指南(http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx).但不完全了解内容.

  1. 它说" The connection string can only be decrypted on the computer on which it was encrypted."我们有一个发布机器,它将构建我们的应用程序,它将生成OurApp.exe.config,然后将其安装到许多产品机器上.是不是我们必须将这个加密过程与我们的应用程序分开并在个人运行产品机器?

  2. 我们可以使用" RSAProtectedConfigurationProvider".它提到我们需要encryption key该提供者.何时以及如何提供加密密钥?

谢谢,

c# encryption

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

C#为什么在构建之后将App.config复制到我的调试和发布文件夹?

我正在使用Visual Studio 2008专业的C#.我发现App.config文件被复制到bin\debug和bin\release文件夹中.那是默认的吗?我以为该XXX.exe.config文件将是项目的唯一配置文件.

  1. 在没有App.config?的情况下发布我们的应用程序是否安全?
  2. 如果是的话,如何要求VS2008在构建后停止复制该文件?

谢谢

.net c#

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

为什么我的MSI安装创建的快捷方式每次都会重新启动设置过程?

我通过VS 2008为我们的C#应用​​程序创建了MSI安装程序.我安装了它.它在桌面上为我创建了一个快捷方式.我点击了那个快捷方式,再次运行安装过程,最后我们的应用程序启动了.在我添加一些自定义操作来创建数据库之前,昨天不是这样的.我没有在安装程序中重新创建快捷方式.为什么会这样?

.net c# windows-installer

6
推荐指数
2
解决办法
6201
查看次数

为什么ByteBuffers hashCodes一样?

我有一个像这样的类构造函数:

public JavoImageCorrectedDataHeader()
    {
        ByteBuffer buffer = ByteBuffer.allocate(this.size());
        buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
        setByteBuffer(buffer, 0);
        System.out.println("buffer.hasCode=" + buffer.hashCode());
    }
Run Code Online (Sandbox Code Playgroud)

在我的其他课程中,我通过使用在不同的位置和时间创建了上述类的许多实例

new JavoImageCorrectedDataHeader()
Run Code Online (Sandbox Code Playgroud)

然后,我预计它将为它们打印出不同的hashCode.但我实际上看到打印出相同的hashCode:

buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
Run Code Online (Sandbox Code Playgroud)

我必须想念如何使用ByteBuffer.

java debugging buffer bytebuffer hashcode

6
推荐指数
2
解决办法
1184
查看次数

为什么不能抓住内在的异常呢?

我试图在数据库服务器关闭时捕获数据库异常.我们使用Sybase IAnywhere.

我使用常规的C#try catch来获取数据库异常的名称.

try
{
//code here
}
catch (Exception ex)
{
Logging.Log.logItem(LogType.Exception, "Exception in isDBRunning", "App_Startup::isDBRunning() ", "GetBaseException=" + ex.GetBaseException().ToString() + "\nMessage=" + ex.Message + "\nStackTrace: " + ex.StackTrace + "\nInnerException: " + ex.InnerException);
}
Run Code Online (Sandbox Code Playgroud)

打印例外是这样的:

GetBaseException=iAnywhere.Data.SQLAnywhere.SAException: Database server not found
   at iAnywhere.Data.SQLAnywhere.SAConnection.Open()
   at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
Message=The underlying provider failed on Open.
StackTrace:    at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
   at System.Data.EntityClient.EntityConnection.Open() …
Run Code Online (Sandbox Code Playgroud)

.net c# exception-handling exception

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

uint是32位,无论系统是32位还是64位?

在C#中,uint是一种UInt32类型,因此无论操作系统是32位还是64位,它都将是32位长.我对吗?

c#

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