Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

5
如何使用iTextSharp将HTML转换为PDF
我想使用iTextSharp将以下HTML转换为PDF,但不知道从哪里开始: <style> .headline{font-size:200%} </style> <p> This <em>is </em> <span class="headline" style="text-decoration: underline;">some</span> <strong>sample<em> text</em></strong> <span style="color: red;">!!!</span> </p>

6
关键字“ new”对C#中的结构有什么作用?
在C#中,结构是根据值进行管理的,而对象是引用的。据我了解,在创建类的实例时,该关键字new使C#使用类信息来创建该实例,如下所示: class MyClass { ... } MyClass mc = new MyClass(); 对于struct,您不是在创建对象,而只是将变量设置为值: struct MyStruct { public string name; } MyStruct ms; //MyStruct ms = new MyStruct(); ms.name = "donkey"; 我不明白的是,如果通过声明变量MyStruct ms = new MyStruct(),new这里的关键字对语句有什么作用?。如果struct不能是对象,那么new这里的实例化是什么?
69 c#  object  struct 

11
为什么不能将null用作Dictionary <bool ?, string>的键?
显然,null即使密钥是可为空的类型,也不能将a用作密钥。 这段代码: var nullableBoolLabels = new System.Collections.Generic.Dictionary&lt;bool?, string&gt; { { true, "Yes" }, { false, "No" }, { null, "(n/a)" } }; ...导致此异常: 值不能为空。参数名称:键 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。 [ArgumentNullException: Value cannot be null. Parameter name: key] System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) +44 System.Collections.Generic.Dictionary'2.Insert(TKey key, TValue value, Boolean add) +40 System.Collections.Generic.Dictionary'2.Add(TKey key, TValue value) +13 .NET框架为什么允许键的可空类型,但不允许空值?

13
为什么C#不像C那样支持局部静态变量?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3个月前关闭。 改善这个问题 为什么C#没有像C这样的局部静态变量?我很想念!!
69 c#  static 

6
如何找到实现给定接口的所有类?
在给定的名称空间下,我有一组实现接口的类。叫它ISomething。我有另一个类(我们称之为CClass),它知道ISomething但不知道实现该接口的类。 我希望CClass查找的所有实现ISomething,实例化它的一个实例并执行该方法。 有人对使用C#3.5做到这一点有想法吗?
69 c#  reflection 

6
简单委托(委托)与多播委托
我已经阅读了许多文章,但是我仍然不清楚我们通常创建的普通委托与多播委托之间的区别。 public delegate void MyMethodHandler(object sender); MyMethodHandler handler = new MyMethodHandler(Method1); handler += Method2; handler(someObject); 上面的委托MyMethodHandler将调用这两个方法。现在,多播委托从何而来。我读到它们可以调用多种方法,但恐怕我对委托的基本理解不正确。

8
如何正确停止BackgroundWorker
我有一个带有2个组合框的表单。我想combobox2.DataSource根据combobox1.Text和进行填写combobox2.Text(我假设用户已完成输入,combobox1并且处于输入的中间combobox2)。所以我有一个这样的事件处理程序combobox2: private void combobox2_TextChanged(object sender, EventArgs e) { if (cmbDataSourceExtractor.IsBusy) cmbDataSourceExtractor.CancelAsync(); var filledComboboxValues = new FilledComboboxValues{ V1 = combobox1.Text, V2 = combobox2.Text}; cmbDataSourceExtractor.RunWorkerAsync(filledComboboxValues ); } 至于构建DataSource是耗时的过程(它创建对数据库的请求并执行它),我认为最好使用BackgroundWorker在另一个过程中执行它。因此,有一种情况是cmbDataSourceExtractor尚未完成其工作,而用户又键入了一个符号。在这种情况下,我在此行上看​​到一个异常,原因 cmbDataSourceExtractor.RunWorkerAsync(filledComboboxValues );是BackgroundWorker很忙,无法同时执行多个操作。 如何摆脱这种例外? 提前致谢!

8
如何从C#.net代码向SQL存储过程传递空变量
我从一段C#.net代码中调用SQL存储过程: SqlHelper.ExecuteDataset(sqlConnection, CommandType.StoredProcedure, STORED_PROC_NAME, sqlParameters); 其中sqlParameters变量被定义为: SqlParameter[] sqlParameters = new SqlParameter[SQL_NUMBER_PARAMETERS]; Log.Logger.Debug(string.Format("Running proc: {0} ", STORED_PROC_NAME)); SqlParameters[0] = new SqlParameter("fieldID", SqlDbType.BigInt ); SqlParameters[0].Value = fieldID; SqlParameters[0].Direction = ParameterDirection.Input; 现在,我需要将另外两个参数传递给此存储过程(均为Type SqlDateTime),在这种情况下将变为NULL。 谢谢, 在

6
我可以从.NET / C#获取其他进程的命令行参数吗?
我有一个项目,其中有一个正在运行的应用程序的多个实例,每个实例都使用不同的命令行参数启动。我希望有一种方法可以从这些实例之一中单击一个按钮,然后关闭所有实例,然后使用相同的命令行参数再次启动它们。 我可以通过轻松地获取流程本身Process.GetProcessesByName(),但是无论何时,该StartInfo.Arguments属性始终是一个空字符串。似乎该属性仅在启动进程之前才有效。 这个问题有一些建议,但是它们全都在本机代码中,我想直接从.NET中做到这一点。有什么建议?
69 c#  .net 

3
由于索引无效,因此无法加载计数器名称数据-Exception
我正在使用C#和WPF-操作系统是Windows 7 Professional和Visual Studio 2012,SQL Server 2012。 我在wpf中使用了Devexpress Grid。我想使用ADO.Net服务器模式将其绑定到数据库。我选择了“项目源向导”选项来执行此绑定,但是它在发生异常后生成: InvalidOperationException:无法加载计数器名称数据,因为从注册表中读取了无效的索引”。 此异常是什么意思? 您能帮我解决这个问题吗? 谢谢,安妮。

4
在C#中使用存储过程输出参数
我在将来自Sql Server存储过程的输出参数返回到C#变量时遇到问题。我不仅在这里而且在其他站点上也阅读了与此相关的其他文章,但我无法使其正常工作。这是我目前拥有的。目前,我只是想打印返回的值。以下代码返回空值。我试图返回的是主键。我已经尝试使用@@IDENTITY和SCOPE_INDENTITY()(即SET @NewId = SCOPE_IDENTITY())。 存储过程: CREATE PROCEDURE usp_InsertContract @ContractNumber varchar(7), @NewId int OUTPUT AS BEGIN INSERT into [dbo].[Contracts] (ContractNumber) VALUES (@ContractNumber) Select @NewId = Id From [dbo].[Contracts] where ContractNumber = @ContractNumber END 打开数据库: pvConnectionString = "Server = Desktop-PC\\SQLEXPRESS; Database = PVDatabase; User ID = sa; PASSWORD = *******; Trusted_Connection …

7
使用2个不同的命令时出现错误“此命令已关联了一个打开的DataReader,必须先关闭它”
我有这个旧代码: private void conecta() { if (conexao.State == ConnectionState.Closed) conexao.Open(); } public List&lt;string[]&gt; get_dados_historico_verificacao_email_WEB(string email) { List&lt;string[]&gt; historicos = new List&lt;string[]&gt;(); conecta(); sql = @"SELECT * FROM historico_verificacao_email WHERE nm_email = '" + email + @"' ORDER BY dt_verificacao_email DESC, hr_verificacao_email DESC"; com = new SqlCommand(sql, conexao); SqlDataReader dr = …
69 c# 


12
可利用的C#函数
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 这个问题类似于可利用的PHP函数。 受污染的数据来自用户,或更具体地说是攻击者。当受污染的变量到达接收器函数时,您将遇到漏洞。例如,执行sql查询的函数是一个接收器,而GET / POST变量是污点的来源。 C#中所有接收器功能是什么?我正在寻找引入漏洞或软件漏洞的功能。我对远程执行代码漏洞特别感兴趣。是否有整个类/库在功能上包含黑客想要影响的讨厌的东西?人们如何意外制作危险的C#代码?
69 c#  security 

17
OWIN的GetExternalLoginInfoAsync始终返回null
我创建了一个新的MVC5 Web应用程序,当我尝试使用Google或Facebook登录时,会调用中的ExternalLoginCallbackAction AccountController,但是GetExternalLoginInfoAsync()始终返回null: var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return RedirectToAction("Login"); } 因为它始终为null,所以它仅重定向回到登录页面,然后过程重新开始。我怎样才能解决这个问题?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.