草庐IT

activate_this

全部标签

c# - "this"可以在 C# 虚拟方法中为 null 吗?其余的实例方法会发生什么?

我很好奇是否有办法让C#中的虚方法中的this为null。我认为这是不可能的。我在现有代码中看到了这一点,在代码审查期间,我想100%肯定会对其删除发表评论,但我希望得到社区的一些确认和更多背景信息。this!=null在任何非静态/实例方法中都是这样吗?否则它会是一个空指针异常吗?我在考虑扩展方法以及我可能不熟悉的来自多年Java的任何C#功能。 最佳答案 这不是标准的C#,而是来自Lasse的答案和Jon,通过一些IL-fiddling,您可以进行非虚拟调用(对虚拟或非虚拟方法)传递空this:usingSystem;using

c# - 重定向 'Response is not available in this context' 时出错

我正在使用以下代码将用户重定向到一个页面。Session["USERDATA"]=user;if(roleName.Equals("Zerker",StringComparison.CurrentCulture))Response.Redirect("~/Account/Dashboard.aspx");但这导致了错误。Responseisnotavailableinthiscontext.我该怎么办? 最佳答案 我认为您正在自己的类(class)中使用响应对象。该对象在那里不可用。尝试使用HttpContext.Current.R

c# - C# 中 "this"赋值的示例是什么?

有人在C#方法中有有用的this赋值示例吗?我在求职面试中被问过一次,我仍然有兴趣自己回答。 最佳答案 当他们说您不能分配给“this”时,其他答案是不正确的。的确,您不能用于类类型,但您可以用于结构类型:publicstructMyValueType{publicintId;publicvoidSwap(refMyValueTypeother){MyValueTypetemp=this;this=other;other=temp;}}在任何时候,结构都可以像这样通过分配给“this”来改变自己。

c# - 如何使用 Active Directory 通用身份验证打开 System.Data.SQLClient.SQLConnection

我使用以下代码连接到使用ActiveDirectory集成身份验证的SQLAzure数据库。privatestringGenerateConnectionString(stringdatabaseName,stringserverName){SqlConnectionStringBuilderconnBuilder=newSqlConnectionStringBuilder();sqlConnectionBuilder.DataSource=string.Format("tcp:{0}.database.windows.net",serverName);connBuilder.Init

c# - 给定 "where T : new()", "new T()"是否在内部使用 Activator.CreateInstance?

如果我有一个类型参数约束new():voidFoo()whereT:new(){vart=newT();}newT()是否会在内部使用Activator.CreateInstance方法(即反射)? 最佳答案 是的,这是真的。编辑2:这里很好地解释了方法和原因。http://www.simple-talk.com/community/blogs/simonc/archive/2010/11/17/95700.aspx为了验证我编译了如下方法:publicstaticTCreate()whereT:new(){returnnewT()

c# - 为什么我们在扩展方法中使用 "this"?

我想问一下为什么我们在扩展方法的参数前使用“this”关键字(C#语言)......................喜欢这个功能:publicstaticintToInt(thisstringnumber){returnInt32.Parse(number);}我知道我们必须使用它,但我不知道为什么。 最佳答案 因为这是您首先告诉编译器它是一个扩展方法的方式。否则它只是一个普通的静态方法。我猜他们选择了this,这样他们就不必想出一个新的关键字并可能破坏旧代码。 关于c#-为什么我们在扩

c# - 使用 C# 获取 Active Directory 中用户的父 OU

我想检查用户是否在特定的父OU中。我该怎么做?检查下面的代码,清楚地了解我在寻找什么。usingSystem.DirectoryServices.AccountManagement;publicboolIsUserInOU(stringsamAccountName,stringOUName){using(varcontext=newPrincipalContext(ContextType.Domain)){using(varuser=UserPrincipal.FindByIdentity(context,IdentityType.SamAccountName,samAccountNa

c# - 使用 Active Directory 中的安全组的 Asp.Net 基于角色的身份验证

我正在尝试做一些简单的事情(我认为)-使用我们域中的ActiveDirectory组使用基于角色的安全性来保护我的应用程序。具体来说,我需要根据当前登录的用户是否属于domain\groupA来显示/隐藏页面上的项目在事件目录中。出于某种原因,很难找到有关为此使用ActiveDirectory的信息。我似乎找到的所有内容都涉及使用角色使用基于表单的身份验证的详细信息,或者它使用数据库来存储信息。我只想在ActiveDirectory中使用我们已经概述的安全结构。有人可以解释一下我需要什么吗?我需要:在web.config在web.configIIS设置为windows身份验证if(Us

c# - 异步调用时 Azure KeyVault Active Directory AcquireTokenAsync 超时

我按照Microsoft的HelloKeyVault中的示例在我的ASP.NetMVCWeb应用程序上设置了AzureKeyvault。示例应用程序。默认情况下,AzureKeyVault(ActiveDirectory)AuthenticationResult的有效期为一小时。因此,一小时后,您必须获得一个新的身份验证token。KeyVault在获得我的第一个AuthenticationResulttoken后的第一个小时内按预期工作,但在1小时到期后,它无法获得新token。不幸的是,直到我的生产环境出现故障,我才意识到这一点,因为我在开发过程中从未测试过超过一个小时。无论如何,

C# : How does this work : Unit myUnit = 5;

我刚刚注意到您可以在C#中执行此操作:UnitmyUnit=5;不必这样做:UnitmyUnit=newUnit(5);有谁知道我如何使用自己的结构实现这一目标?我查看了带有反射器的Unit结构并注意到正在使用TypeConverter属性,但是在我为我的结构创建自定义TypeConverter之后我仍然无法让编译器允许这种方便的语法。 最佳答案 您需要提供一个从int到Unit的隐式转换运算符,如下所示:publicstructUnit{//theconversionoperator...publicstaticimplicito