如何传递有时为空的参数?

     2023-02-23     83

关键词:

【中文标题】如何传递有时为空的参数?【英文标题】:How can I pass args that are sometimes null? 【发布时间】:2013-01-20 16:10:47 【问题描述】:

在此事件处理程序中:

        public static void geolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
        
            DateTimeOffset timeStampUTC = args.Position.Coordinate.Timestamp.ToUniversalTime();
            DateTimeOffset timeStampLocal = timeStampUTC.LocalDateTime;
            DateTimeOffset dateTimeStampUTC = timeStampUTC.DateTime;
            RecordLocation(args.Position.Coordinate.Latitude, args.Position.Coordinate.Longitude,    
            args.Position.CivicAddress.City, args.Position.CivicAddress.State, dateTimeStampUTC, timeStampLocal);
        

...我得到一个Null Reference Exception,因为args.Position.CivicAddressnull(传递给RecordLocation() 的其余参数是有效的)。我认为有时位置会是null,有时不会。我该怎么做才能让找不到城市或州的时代有增无减?我试图让RecordLocation() 的定义中的那些字符串可以为空,但这不会编译。

我是否需要检查 CivicAddress 是否为 null 并创建我的 RecordLocation() 方法的重载版本,还是有其他方法来处理这个问题?

【问题讨论】:

【参考方案1】:

我该怎么做才能让找不到城市或州的时代有增无减?

你只需要检查一下。例如:

if (args.Position != null && args.Position.CivicAddress != null)

    // Now you can use args.Position.CivicAddress.State safely

如果你想用args.Position 做很多事情,你很可能想要一个“外部” if 语句——很可能用一个局部变量来简化事情:

var position = args.Position;
if (position != null)

    if (position.CivicAddress != null)
    
        // Use properties of position.CivicAddress
    
    // Assuming Coordinate is nullable to start with, of course...
    if (position.Coordinate != null)
    
        // ...
    

【讨论】:

为可为空的函数参数提供“null”时如何使用默认值?

】为可为空的函数参数提供“null”时如何使用默认值?【英文标题】:Howtousedefaultvaluewhen`null`isgivenforanullablefunctionparameter?【发布时间】:2018-01-0109:16:48【问题描述】:在PHP7.1中调用以下函数时:privatefunctiondoStuff(?int$limit=999)语... 查看详情

通过传递多个可为空的值从数据库中过滤数据

】通过传递多个可为空的值从数据库中过滤数据【英文标题】:Filterdatafromdatabasebypassingmultiplenullablevalues【发布时间】:2021-07-0414:47:33【问题描述】:我有一个包含n个列的表,我想按n个可空参数过滤数据,如果else条件有任何方... 查看详情

如何将“任何不可为空的类型”指定为泛型类型参数约束?

】如何将“任何不可为空的类型”指定为泛型类型参数约束?【英文标题】:HowdoIspecify"anynon-nullabletype"asagenerictypeparameterconstraint?【发布时间】:2019-12-1114:39:58【问题描述】:这篇文章是针对C#8的。假设我想要这个方法:... 查看详情

Laravel 验证中有时和可为空的区别

】Laravel验证中有时和可为空的区别【英文标题】:DifferencesbetweensometimesandnullableinLaravelvalidation【发布时间】:2021-09-0208:06:43【问题描述】:假设我可以通过两种方式进行验证\'active\'=>\'sometimes\',和\'active\'=>\'nullable\',有什么... 查看详情

指定为非空的参数为空:无法更新 Spring Boot jpa 中的单个实体字段。导致指定为非空的参数为空

】指定为非空的参数为空:无法更新SpringBootjpa中的单个实体字段。导致指定为非空的参数为空【英文标题】:Parameterspecifiedasnon-nullisnull:Can\'tUpdateindividualEntityfieldinSpringBootjpa.CausedParameterspecifiedasnon-nullisnull【发布时间】:2021-06-01... 查看详情

函数分配一个不为空的参数

】函数分配一个不为空的参数【英文标题】:Functionassignaparameterthatisn\'tnull【发布时间】:2014-05-2503:26:48【问题描述】:这是我上一个问题的后续问题。Runafunctionwithoutaparameterbutneededavariableoutsideofthefunction-PHP我收到了这个答案funct... 查看详情

IllegalArgumentException:指定为非空的参数为空

】IllegalArgumentException:指定为非空的参数为空【英文标题】:IllegalArgumentException:Parameterspecifiedasnon-nullisnull【发布时间】:2017-12-0617:38:21【问题描述】:我收到以下运行时错误:checkParameterIsNotNull,parameteroneClickTokensatcom.info.app.fragm... 查看详情

空值的传递后判断为空的问题.

当前台将一个null空值传输到后台,将会变成一个String的”null”,而后台通过接口传入到另一个系统后台后将会在进行一次封装(传输的值都未经处理),另一个系统要判断传过来是否为空:StringUtils.isEmpty(值)和StringUtils.isNotEmpty(值)进行... 查看详情

使用带参数方式新增或修改可为空的非字符串类型数据到oralce数据库(代码片段)

有时候没有使用orm框架,手工编写或者代码生成器生成的带参数的insert语句时,比如///<summary>///增加一条数据///</summary>publicstaticboolAdd(Model.IMGINFOmodel)StringBuilderstrSql=newStringBuilder();strSql.Append("insertintoIMGINFO 查看详情

ASP.NET WebApi HttpPost 参数始终为空

...述】:我正在尝试通过webapimicrosoft应用程序中的post请求传递对象的参数,但传递的参数始终为null。这是我的post方法的控制器,在调试中程序到达了方法但是dataUrlIN.url字符串总是空的[HttpPost 查看详情

柯里化函数的实现(代码片段)

...习过程:柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。如果要实现下面这... 查看详情

Spring数据JPA和可以为空的参数

】Spring数据JPA和可以为空的参数【英文标题】:SpringdataJPAandparametersthatcanbenull【发布时间】:2015-07-2500:23:06【问题描述】:我的理解是,使用SpringdataJPA,我无法使用查询方法来获取列等于给定非空方法参数的所有行,并使用相... 查看详情

Play Framework bindFromRequest() 方法返回参数为空的对象

】PlayFrameworkbindFromRequest()方法返回参数为空的对象【英文标题】:PlayFrameworkbindFromRequest()methodreturnsobjectswithnullparameters【发布时间】:2017-06-0516:27:13【问题描述】:我是Play新手!所以我正在尝试创建一个非常基本的发布请求,将... 查看详情

GET 参数为空,即使我正在传递一个值 [重复]

...alue[duplicate]【发布时间】:2018-08-0701:44:39【问题描述】:如何让以下代码工作?Stringd=request.getParameter("bday");GET参数为空值,但我在此处存储html日期选择器,即使我正在传递一个值Extra_User.jsp< 查看详情

Spring(kotlin)控制器接收数据类的不可为空的参数为空

】Spring(kotlin)控制器接收数据类的不可为空的参数为空【英文标题】:Spring(kotlin)controllerreceivesnon-nullableparametersofadataclassasnull【发布时间】:2019-04-0908:21:14【问题描述】:我遇到了一个我不知道如何处理的意外错误。我有一个... 查看详情

springboot接收get请求个别参数可能为空的解决方案

参考技术A假如参数a是一个非必传参数,可以为空解决方案:指定多个匹配路径,并设置相应参数为非必须。上面的路由就可以拆分为: 查看详情

测试批处理文件中参数是不是为空的正确方法是啥?

】测试批处理文件中参数是不是为空的正确方法是啥?【英文标题】:Whatistheproperwaytotestifaparameterisemptyinabatchfile?测试批处理文件中参数是否为空的正确方法是什么?【发布时间】:2011-02-0206:17:00【问题描述】:我需要测试是否... 查看详情

sqlserver2012存储过程参数传递null值,如何判定这个参数是null

存储过程写if@paraisnullBeginselect语句条件相当于where1=1EndelseSelect语句为什么参数传递null值时没有返回任何结果,print@para也是空,参数给定一个之正常.不能用@paraisnull或者isnull(@para,'')=''还能用什么方法判定@para是传递null... 查看详情