Tag: C#的

关于声明的螺旋规则 – 什么时候出错?

最近我学习了用于反混淆复杂声明的螺旋规则 , 该规则必须是用一系列typedef写的。 但是,下面的评论警告我: 一个经常被引用的简化,只适用于几个简单的情况。 我没有findvoid (*signal(int, void (*fp)(int)))(int); 一个“简单案例”。 顺便说一句,更令人担忧的是 所以,我的问题是, 在哪种情况下我会正确适用这个规则,哪一个会出错呢?

C#正则expression式,单引号之间的string

string val = "name='40474740-1e40-47ce-aeba-ebd1eb1630c0'"; 我想要使​​用正则expression式之间'引号之间的文本。 任何人都可以

在entity framework中使用DataAnnotations

我已经使用VS2010的entity framework来创build一个简单的人物类,名字,姓氏和电子邮件。 如果我想附加DataAnnotations就像在这篇博客文章中所做的,我有一个小问题,因为我的人类是dynamic生成的。 我可以直接编辑dynamic生成的代码,但任何时候我必须更新我的模型,我的validation代码将被清除。 第一本能是创build一个部分类,并尝试附加注释,但它抱怨说,我试图重新定义的财产。 我不确定是否可以在C#中使用C ++中的函数声明来进行属性声明。 如果你能这样做可能是答案。 这是我尝试的一个片段: namespace PersonWeb.Models { public partial class Person { [RegularExpression(@"(\w|\.)+@(\w|\.)+", ErrorMessage = "Email is invalid")] public string Email { get; set; } /* ERROR: The type 'Person' already contains a definition for 'Email' */ } }

std :: cout将不会打印

当std::cout << "hello"不起作用时,是否有任何情况? 我有ac / c + +代码,但std::cout不打印任何东西,甚至不是常量string(如“你好”)。 有没有办法检查cout是否能够打开stream? 有一些成员函数,如good() , bad() ,…但我不知道哪一个适合我。

非推断上下文的解决方法

考虑下面的代码: #include <iostream> template<class T> struct outer { struct inner {}; }; template<class T> std::ostream& operator<<(std::ostream & stream, typename outer<T>::inner const& value) { std::cout << "An outer::inner!"; return stream; } int main() { outer<float>::inner foo; std::cout << foo << std::endl; // does not compile } 这不会被编译,因为typename outer<T>::inner是一个非导出的上下文 (如这里所解释的),这意味着模板参数types不能被编译器推导出来(阅读这个答案为什么)。 正如我所看到的,我有两个select使其工作: 移动外部的inner并使其成为类模板。 我更喜欢这个,因为对使用代码的影响较小。 向内部添加一个to_string方法。 有没有其他的解决scheme(这不会导致在使用代码丑陋的语法)?

如何保护可能在multithreading或asynchronous环境中使用的资源?

我正在研究一个被各种消费者使用的C#API。 这个API提供对共享资源的访问(在我的情况下是用来进行串行通信的硬件),通常会有几个不同的参与者试图同时使用它。 我的问题是,我的一些消费者会想要在multithreading环境中使用它 – 每个angular色独立工作,并尝试使用资源。 一个简单的锁在这里工作正常。 但是,我的一些消费者更喜欢使用asynchronous等待和时间片资源。 (据我所知)这需要一个asynchronouslocking产生时间片回到其他任务; 在锁上阻塞会阻止整个线程。 而且我认为有串行锁是最好的,最坏的情况是潜在的竞争条件或死锁。 那么我怎样才能保护共享代码库中的共享资源,以实现潜在的并发使用?

C ++中的文件结尾

我有一个X 2matrix存储在一个文本文件中。 我尝试在C ++中读取它 nb_try=0; fin>>c_tmp>>gamma_tmp; while (!fin.eof( )) //if not at end of file, continue reading numbers { // store cs_bit.push_back(c_tmp); gammas_bit.push_back(gamma_tmp); nb_try++; // read fin>>c_tmp; assert(!fin.fail( )); // fail at the nb_try=n if(fin.eof( ))break; fin>>gamma_tmp; // get first number from the file (priming the input statement) assert(!fin.fail( )); } 第一个断言失败,即fin.fail()是真实的,当nb_try == n,当它试图读取不存在的第一个数字时发生。 但是,在阅读最后一个数字后,fin.eof()怎么会不正确? […]

Unity从脚本创buildUI控制

我通过代码创build了一个切换,但不会显示。 而且,我不能改变我的文本字段的位置。 我尝试了很多,没有任何工作。 这是我现在的版本,也许你看到了错误。 我对Unity很陌生,这非常困难。 public class Game : MonoBehaviour { public GameObject canvas; void Start () { GameObject newGO = new GameObject("myTextGO"); newGO.transform.SetParent(this.transform); newGO.transform.position = new Vector3(0, 0, 0); Text myText = newGO.AddComponent<Text>(); myText.text = "Ta-dah!"; Font ArialFont = (Font)Resources.GetBuiltinResource(typeof(Font),"Arial.ttf"); myText.font = ArialFont; myText.material = ArialFont.material; myText.color = Color.black; myText.transform.position = new Vector3(0, 10, […]

通用所有控制方法

想不到更好的标题,所以appologies .. 我试图转换这个方法 ,它将检索一个窗体的所有子控件,作为扩展方法以及接受接口作为input。 到目前为止,我是最好的 public IEnumerable<Control> GetAll<T>(this Control control) where T : class { var controls = control.Controls.Cast<Control>(); return controls.SelectMany(ctrl => GetAll<T>(ctrl)) .Concat(controls) .Where(c => c is T); } 这工作正常,除了我需要添加OfType<T>()时调用它来访问其属性。 例如(这个==表单) this.GetAll<IMyInterface>().OfType<IMyInterface>() 我努力使返回types转换为generics返回typesIEnumerable<T> ,所以我不必包含一个只返回相同结果但正确转换的OfType。 任何人有任何build议? (将返回types更改为IEnumerable<T>会导致Concat抛出 实例参数:无法从“System.Collections.Generic.IEnumerable <T> ”转换为“System.Linq.ParallelQuery <System.Windows.Forms.Control> ”

在C#中将Access图像OLE对象转换为原始图像字节数组

我似乎无法得到一个答案所有在一起,我真正的问题从数据库检索图像时,无效的参数所以,我试图一块一块。 在C#和MS Access 2010中使用Visual Studio 2012.我的解决scheme是与应用程序无关的web。 我不确定这个部分,所以在这里我的问题是如何正确地从一个查询中的行中的一个OLE对象的图像到一个字节数组( byte [] ),因为当然不是我如何用下面的代码来做这件事。 我在说的是row [“FOTO”] 。 OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [APP_Equipamento_Geral] WHERE COD_ETIQ like '%" + codigo + "%'", l); DataSet ds = new DataSet(); adapter.Fill(ds, "[APP_Equipamento_Geral]"); string s = ds.Tables["[APP_Equipamento_Geral]"].Columns[16].ColumnName; foreach (DataRow row in ds.Tables["[APP_Equipamento_Geral]"].Rows) { eq.NSerie = row["N_SERIE"].ToString(); eq.NInventario = row["Codigo"].ToString(); if (row["FOTO"] […]