nullreferenceexception
全部标签 嗯,几个月前我问过asimilarquestionaboutCandC++,但由于整个“WindowsPhone”问题,我最近更加关注C#。那么,在C#中,是否应该在方法边界检查NULL?我认为这与C和C++不同,因为在C#中,通常可以确定给定引用是否有效——编译器会阻止将未初始化的引用传递到任何地方,因此唯一可能的错误是它为null.此外,在.NETFramework中为这些东西定义了一个特定的异常,即ArgumentNullException。,这似乎将程序员认为在传递无效null时应该得到的东西编成法典。我个人的意见再次表明,这样做的调用者是错误的,并且说调用者应该向他们抛出NR
这是一段代码:IUseruser=managerUser.GetUserById(UserId);if(user==null)thrownewException(...);Quotequote=newQuote(user.FullName,user.Email);这里一切都很好。但是,如果我将“if”行替换为以下行:ComponentException.FailIfTrue(user==null,"Can'tfinduserwithId="+UserId);函数实现如下:publicabstractclassComponentException:ComponentExceptionwh
我正在尝试使用MOQ对以下ViewModel的LoginExecute方法进行单元测试publicclassLoginViewModel:ViewModelBase,ILoginViewModel{INavigationServicenavigationService;IDialogServicedialogService;IAdminServiceadminService;publicRelayCommandLoginCommand{get;set;}privatestring_productID;publicstringProductID{get{return_productID;
是时候再次吸引更伟大的思想了。我正在经历一个非常奇怪的现象。正如标题所述,我在尝试创建EFObjectContext时收到NullReferenceException,但只有在Using语句中创建上下文时才会收到异常。我尝试了各种不同的方法,但结果总是一样。而且,当然,这是直到昨天都运行良好的代码。我的Windows更新昨天早上运行可能与此相关。反正...如果我试试这个using(varcontext=newEntities(Env.Instance.Connection)){//doabunchofEFstuff}我在创建ObjectContext时收到NullReferenceEx
我正在使用不安全的代码解决CodeGolf,上的问题我发现了一些我无法解释的东西。这段代码:unsafe{inti=*(int*)0;}因访问冲突(Segfault)而崩溃,但此代码:unsafe{*(int*)0=0;}抛出NullReferenceException。在我看来,第一个正在执行读取,第二个正在执行写入。一个异常告诉我,CLR中的某个地方正在拦截写入并在操作系统终止进程之前将其停止。为什么这会发生在写上,而不是在读上?如果我使指针值足够大,它会在写入时出现段错误。这是否意味着CLR知道有一block内存是保留的,甚至不会尝试写入?那么,为什么它允许我尝试读取该block
AccountController.cs包含AccountController类。该类的Login方法失败。具体来说,varresult=awaitSignInManager.PasswordSignInAsync(model.Email,model.Password,model.RememberMe,shouldLockout:true);在Login方法中抛出System.NullReferenceException。我已验证model.Email、model.Password和model.RememberMe不为空。下一步是深入研究SignInManager,它是AccountC
我的MVC4.0应用程序有一个奇怪的问题。我使用REST网络服务(AmazonAssociate)。我创建了一种方法,可以在任何地方使用。缩短版是这样的:privateasyncTaskGetRequest(stringurl){stringmyresponse;HttpResponseMessageresponse=null;HttpClientclient=newHttpClient();try{response=awaitclient.GetAsync(url);myresponse=response.Content.ToString();if(myresponse.Contai
如何测试通用字典对象以查看它是否为空?我想按如下方式运行一些代码:while(reportGraphs.MoveNext()){reportGraph=(ReportGraph)reportGraphs.Current.Value;report.ContainsGraphs=true;break;}reportGraph对象的类型是System.Collections.Generic.Dictionary运行此代码时,reportGraphs字典为空,MoveNext()立即抛出NullReferenceException。如果有更高效的方法来处理空集合,我不想在block周围放置tr
如果我们将一些空变量转换为一个类型,我希望编译器抛出一些异常,但它并没有。为什么?我是说stringsample1=nullasstring;stringsample2=(string)null;objectt1=null;TestClasst2=(TestClass)t1;也许在第一个中,as运算符处理异常处理。但其他示例必须抛出异常。编译器如何处理这些情况?也许因为变量为空,所以它不执行强制转换操作?因为如果它真的转换了一个空指针,它一定是一个错误。 最佳答案 Accordingtothedocumentation(显式转换)您
我面临着非常奇怪的问题。给定以下代码:staticvoidMain(){varc=newSystem.Data.SqlClient.SqlConnection();c.ConnectionString="DataSource=SOME_NAME;InitialCatalog=SOME_DB;IntegratedSecurity=True";c.ConnectionString="";//nullalsotriggersexceptionConsole.WriteLine("Success");}它在很长一段时间内运行良好,但在具有.NET版本4.7.03056版本461808(似乎是4