草庐IT

windows - 使用哪种型号的 STA/MTA

我正在尝试创建COM组件,它会经常被excel应用程序调用(excel将在其初始化时加载COM)并且另一个进程(比如procA)也会(以高频率)发送windows消息到这个组件。目前我将COM实现为STA,但是,我遇到了当COM忙于处理来自procA的消息时,excelUI卡住了。请帮我解决这个问题。我可以只创建一个简单的窗口线程来处理来自procA的消息,同时将COM保持为STA模型吗?或者我是否需要将COM制作为MTA模型,如果需要,请说明如何处理。谢谢 最佳答案 迁移到MTA需要您执行所有必要的锁定以保护您的组件的状态。并且它

windows - 哪种编程语言最适合实现 Windows 窗体对话框?

怎么办?我想用几个按钮实现一个足够简单的对话框。 最佳答案 vb.net或c#.net都使用.net框架。您可以创建一个Windows窗体项目,该项目具有丰富的按钮、窗体、标签、网格用户界面……开始使用VisualStudio也非常简单,因为VisualStudio有为您编写部分代码的选项。 关于windows-哪种编程语言最适合实现Windows窗体对话框?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

c# - 当用户选择一条记录时,推荐使用哪种方式来填充 Web 表单上的所有控件?

我有一个显示所有员工列表的GridView控件。当用户从此列表中选择任何员工时,记录将显示在Web表单上,所有输入控件都预先填充了值。我想知道执行此操作的任何好方法。我应该将所有输入控件绑定(bind)到任何SqlDataSource还是应该通过从DataSet中选取值来重新填充所有输入控件。 最佳答案 首先在GridView上添加选择按钮:然后在GridView上添加OnRowCommand="RowCommand"属性,以便在单击按钮时调用此函数以及函数背后的代码:protectedvoidRowCommand(objectse

c# - 返回 List<T> 的只读包装器的哪种方式更可取?

比如说,我们有一个带有私有(private)列表的通用类。我们至少可以通过两种方式让它返回此列表的只读包装器:publicclassTest{publicListlist=newList();publicIEnumerableValues1{get{foreach(Tiinlist)yieldreturni;}}publicIEnumerableValues2{get{returnlist.AsReadOnly();}}}Values1和Values2都反射(reflect)了底层集合中的任何变化,并防止它通过自身进行修改。哪种方式更可取?应该注意什么?或者还有其他更好的方法吗?

c# - 哪种设计模式用于过滤查询? C#

我有一个包含产品(服装)列表的数据库表。产品属于类别,来自不同的商店。示例类别:上衣、下装、鞋子示例商店:gap.com、macys.com、target.com我的客户可以通过以下方式请求过滤产品:所有产品(无过滤器)按类别按商店按类别和商店现在我的“产品”类中有一个方法可以根据用户请求的过滤器类型返回产品。我使用FilterBy枚举来确定需要退回哪些产品。例如,如果用户想查看“tops”类别中的所有产品,我调用此函数:Products.GetProducts(FilterBy.Category,"tops","");我将最后一个参数设为空,因为它是包含筛选依据的“商店”的字符串,但

c# - var 默认为哪种 int 类型?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C#short/long/intliteralformat?Reading关于var在编程中的使用,我很好奇var在用于int类型时的默认值。例如,如果我使用varfoo=65535类型是ushort还是int?谢谢。

c# - 我应该使用哪种返回方式?

这与C#中使用的约定有关。我有一个方法有两个参数(X和Y坐标)。这些坐标表示“瓦片”可能驻留的位置。如果图block位于这些坐标处,则该方法返回其编号。如果这些坐标上没有图block,我想知道该方法应该如何运行。我看到三个选项:使用异常(exception)。每次方法找不到图block时,我可能会引发异常。但是,由于这种情况并不少见,因此此选项是最糟糕的选项。以老式的C++方式执行此操作,如果没有磁贴则返回-1。将瓦片编号作为引用参数并将方法的返回类型更改为bool值以显示是否有瓦片。但这对我来说似乎有点复杂。那么,我该怎么办呢? 最佳答案

c# - 我应该使用哪种方法来感知计算机在编程中的思考?

我想创建一个简单的游戏,例如tictactoe,让人类用户与计算机对战。计算机功能需要几毫秒才能运行,但我想给出计算机需要5秒才能移动的感觉。我应该使用哪种方法?1)创建两个内存线程。一种用于计算机,一种用于人类用户。当计算机用5秒模仿思考时,人类用户线程暂停5秒。2)使用计时器或调度器计时器禁用输入设备5秒3)你能想到的任何更好的方法..谢谢!编辑-问题是关于如何以及现在是为什么。5秒只是一个例子。我更喜欢1-2秒,但出于示例目的,我只选择了5秒。所以请关注执行此操作的最佳方法,而不是5秒。再次感谢。 最佳答案 噪音和闪烁的灯光=

c# - 属性最早出现在哪种语言中

这个问题在这里已经有了答案:WhatwastheHistoricalPrecursorfor.NETAttributes?(3个答案)关闭8年前。似乎C#中的几乎所有功能都是从其他语言借来的(OOP来自Java,泛型(参数多态性)和lambdas来自ML系列,LINQ来自Haskell的monads,dynamic来自动态语言),但我不知道属性的来源(Java世界中的注解)。C#是第一个引入属性的语言吗?

c# - 您会为 .net 项目推荐哪种验证框架?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion要用于基于Web的mvc3.net应用程序,您会推荐哪种验证框架?应用程序遵循领域模型模式,领域模型POCO位于单独的类库中?所需的验证类型将是...NotNull、基于正则表达式等