Tag: C#的

C – 传递一个2d数组作为函数参数?

人们可以很容易地定义一个接受像这样的1d array参数的函数: int MyFunction( const float arr[] ) { // do something here, then return… return 1 } 虽然一个定义如: int MyFunction( const float* arr )也可以。 如何定义一个接受2d array参数的函数呢? 我知道这是有效的: int MyFunction( const float** arr ) – 但是,有可能使用[]的第一个变体?

entity framework和业务对象

我从来没有使用entity framework,我想尝试一些个人项目实施它,让我的脚湿。 我看到实体可以暴露于表示层。 但我不希望某些字段暴露,像修改date和创builddate和各种其他数据库字段的字段。 我怎么能实现业务对象,只公开我需要的属性,但仍然保持对象的序列化? 这对LinqToSql有什么好处?

AsEnumerable()对LINQ实体有什么影响?

阅读这里和这里的问题给了我一些洞察情况,似乎使用AsEnumerable是内存消耗。 有没有更好的方法来做到这一点LINQ和现在的做法,是出来的数据可靠吗? 删除AsEnumerable结果“本地序列不能用于除Contains运算符以外的查询运算符的LINQ to SQL实现”。 var results = from p in pollcards.AsEnumerable() join s in spoils.AsEnumerable() on new { Ocr = p.OCR, fileName = p.PrintFilename } equals new { Ocr = s.seq, fileName = s.inputFileName } where p.Version == null orderby s.fileOrdering, s.seq select new ReportSpoilsEntity { seq = s.seq, fileOrdering = s.fileOrdering, inputFileName = […]

在具有多个接口()的对象中实现QueryInterface()时,为什么我需要明确的向上转换?

假设我有一个实现两个或多个COM接口的类: class CMyClass : public IInterface1, public IInterface2 { }; 几乎我看到的每个文档都build议,当我为IUnknown实现QueryInterface()时,我显式地将此指针上传到其中一个接口: if( iid == __uuidof( IUnknown ) ) { *ppv = static_cast<IInterface1>( this ); //call Addref(), return S_OK } 问题是为什么我不能只复制这个 ? if( iid == __uuidof( IUnknown ) ) { *ppv = this; //call Addref(), return S_OK } 这些文档通常说,如果我做了后者,我将违反在同一对象上对QueryInterface()的任何调用必须返回完全相同的值的要求。 我不太明白。 他们的意思是,如果我QI()为IInterface2并调用QueryInterface()通过该指针C ++将通过这个略有不同,如果我QI()IInterface2因为C ++将每次使这一点的子对象?

如何获得实现给定接口的所有加载types的所有实例?

我们需要获得实现给定接口的所有对象的实例 – 我们可以这样做吗?如果是这样的话?

双删除会发生什么?

Obj *op = new Obj; Obj *op2 = op; delete op; delete op2; // What happens here? 当你不小心加倍删除时,会发生什么情况? 有关系吗? 编译器会抛出一个错误吗?

用于Excel文件的OleDB连接string帮助

我遇到的问题是数据适配器只查看每列中的第一行来确定数据types。 在我的情况下,第一列“SKU”是前500行的数字,然后我碰巧具有混合的数字和字母的SKU。 那么最后发生的是SKU列中的行是空白的,但是我仍然可以得到每列行的其他信息。 我相信这是连接string控制,并与我目前的设置,它应该工作,但事实并非如此。 连接string: conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nick\Desktop\Pricing2.xlsx" + @";Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0"""; ImportMixedTypes=Text;TypeGuessRows=0 应该是重要的关键字,看看0行,只是使用文本作为所有值的types。 我把这个“bandaid”放在电子表格的第一行是字母和数字的混合,特别是在我的查询中留下这一行。

使用SO_REUSEADDR – 之前打开的套接字会发生什么?

在unixnetworking编程中,我总是在服务器使用的套接字上设置SO_REUSEADDR选项来监听连接。 这基本上说,另一个套接字可以在机器上的同一个端口上打开。 当从崩溃中恢复并且套接字未正确closures时,这非常有用 – 应用程序可以重新启动,只需在同一个端口上打开另一个套接字并继续监听。 我的问题是,旧sockets会发生什么? 毫无疑问,所有的数据/连接仍然会在旧套接字上被接收。 它是否被操作系统自动closures?

如何获得Excel表格中占用的单元格的范围

我使用C#来自动化一个Excel文件。 我能够获得工作簿和它包含的工作表。 如果例如我在sheet1中有两列和五列。 我想要得到被占用的单元格的范围为A1:B5。 我试了下面的代码,但没有给出正确的结果。 列#和行#更大,单元也是空的。 Excel.Range xlRange = excelWorksheet.UsedRange; int col = xlRange.Columns.Count; int row = xlRange.Rows.Count; 有另一种方法可以用来获得这个范围吗?

如何testing一个静态函数

当对某些C代码应用unit testing时,我们遇到了一个问题,即一些静态函数不能在testing文件中调用,而不修改源代码。 有没有简单或合理的方法来解决这个问题?