草庐IT

always_false

全部标签

c# - 为什么 Object.Equals() 在从不同的程序集实例化时对相同的匿名类型返回 false?

我有一些代码可以将强类型业务对象映射到匿名类型,然后将其序列化为JSON并通过API公开。将我的解决方案重组为单独的项目后,我的一些测试开始失败。我做了一些挖掘,结果是Object.Equals对来自不同程序集的代码返回的匿名类型的行为不同-我不确定为什么,或者我可以做些什么来解决它。在https://github.com/dylanbeattie/AnonymousTypeEquality有完整的重现代码但实际上破坏的部分在下面。此代码在测试项目中:[TestFixture]publicclassTests{[Test]publicvoidBothInline(){vara=new{

c# - 当 Control.Visible == false 时无法将数据绑定(bind)到控件

在带有C#4.0/C#2.0的WinForms中,如果控件的可见字段为false,我无法绑定(bind)到控件:this.checkBox_WorkDone.DataBindings.Add("Visible",WorkStatus,"Done");我可以确认绑定(bind)已成功添加到控件的数据绑定(bind)列表,但如果我更改绑定(bind)对象(WorkStatus),则什么也不会发生。这是WorkStatus的样子:publicclassWorkStatus:INotifyPropertyChanged{privateBoolean_done;publicBooleanDone

c# - Application.SetCompatibleTextRenderingDefault(false);

Application.SetCompatibleTextRenderingDefault(false);错误:BeforetheestablishmentofthefirstobjectIWin32WindowintheannextocallSetCompatibleTextRenderingDefault.为什么会出错?如何避免?SetCompatibleTextRenderingDefault实际上做了什么? 最佳答案 在.NET1.x中,GDI+Graphics类用于呈现某些控件。由于性能问题,此方法已被废弃,因此.NET2

c# - Windows 窗体 : Pass clicks through a partially transparent always-on-top window

我正在设计一个始终显示在屏幕上且不透明度约为20%的窗口。它被设计成一种状态窗口,所以它总是在顶部,但我希望人们能够通过该窗口单击到下面的任何其他应用程序。这是我现在键入时位于此SO帖子顶部的不透明窗口:看到那个灰色条了吗?它会阻止我此刻在标签框中输入。 最佳答案 可以制作一个窗口,点击通过添加WS_EX_LAYERED和WS_EX_TRANSPARENT样式到它的扩展样式。还要让它始终位于顶部设置其TopMost为true并使其半透明使用合适的Opacity值:usingSystem;usingSystem.Windows.For

c# - TcpClient.GetStream().DataAvailable 返回 false,但流有更多数据

因此,阻塞的Read()似乎可以在完成接收所有发送给它的数据之前返回。反过来,我们用一个循环包装Read(),该循环由相关流中的DataAvailable值控制。问题是您可以在此while循环中接收更多数据,但没有后台处理继续让系统知道这一点。我在网上找到的大多数解决方案都不适用于我。我最终做的是作为我循环的最后一步,我在从流中读取每个block后执行一个简单的Thread.Sleep(1)。这似乎让系统有时间更新,我没有得到准确的结果,但这似乎有点老套,而且对于解决方案来说有点“间接”。以下是我正在处理的情况的列表:IIS应用程序和独立应用程序之间的单个TCP连接,两者都是用C#编写

c# - TryParseExact 返回 false,虽然我不知道为什么

下面代码块中的方法TryParseExact返回true。我想知道为什么。我认为这个日期"2013.03.12"是无效的,因为它不是用斜杠而是点分隔的。在我将CultureInfo"de-De"更改为"en-US"后,该方法返回false。这可能是一个提示,但我仍然不知道为什么会这样。varformat=newstring[]{"yyyy/MM/dd"};varparsed=newDateTime();varresult=DateTime.TryParseExact("2013.03.12",format,newCultureInfo("de-DE"),DateTimeStyles.N

c# - 转换 bool[] -> "false, true, true, false"的简洁代码

如何使用尽可能少的代码行将bool数组转换为字符串,如“false,true,true,false”?Python允许我使用以下内容(非常漂亮和干净):",".join(map(str,[False,True,True,False]))在C#中,string.Join只允许我连接一个字符串数组。那么在C#中做同样事情的捷径是什么? 最佳答案 vararray=new[]{true,false,false};varresult=string.Join(",",array.Select(b=>b.ToString()).ToArray(

c# - 我如何确定为什么 Enyim 内存缓存在存储项目时返回 false?

我如何确定为什么Enyim从以下调用中返回false:cache.Store(Enyim.Caching.Memcached.StoreMode.Set,key,value);其他项目存储正常,因此与服务器的连接似乎不是问题。该对象似乎不大于1MB。那么我怎样才能确定是什么导致了错误呢? 最佳答案 要检查的另一件事是您存储的整个对象图是[Serializable]。如果不是,则Enyim将抛出一个序列化异常,它会告诉您需要将哪个类型标记为可序列化。按照https://github.com/enyim/EnyimMemcached/w

c# - 使用 '== false' 而不是否定运算符时,内联变量声明不会编译

考虑以下片段:voidFoo(objectsender,EventArgse){if(!(senderisComboBoxcomboBox))return;comboBox.DropDownWidth=100;}相比于voidBar(objectsender,EventArgse){if((senderisComboBoxcomboBox)==false)return;comboBox.DropDownWidth=100;}包含Foo()的代码在.Net4.6.1中成功编译,而包含Bar()的代码导致Useofunassignedlocalvariable'comboBox'。在不讨论

c# - 使用 C# 连接生物识别机器时返回 false

我想使用C#连接生物识别机器。我正在使用zkemkeeperdll连接机器我已经使用connect_net方法连接了ip地址和端口publicpartialclassForm1:Form{publiczkemkeeper.CZKEMmachineObj=newzkemkeeper.CZKEM();publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){boolstatus=false;status=machineObj.Connect_Net("10.10.32.162