Rob*_* J. 3 c# logical-operators
我有以下课程:
public class SubStredisko
{
public string Name { get; set; }
public string Code { get; set; }
public VyplatnePasky VyplatnaPaska { get; set; }
public MzdoveNaklady MzdoveNaklady { get; set; }
public Poistne Poistne { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我有两个SubStredisko项目,其中一个肯定是null.我想要做的是,我有一个单独的方法,它做了一些处理SubStredisko,如更改值VyplatnaPaska等.这是它的样子:
private static void VyplatnePasky_Items(ref Stredisko stredisko, XElement myElement)
{
//some logic here
}
Run Code Online (Sandbox Code Playgroud)
我现在尝试做的事情(我遇到的问题)是使用?:运算符以下列方式调用此方法:
VyplatnePasky_Items((sPracovisko == null) ? ref sPracovisko_Dohodari : ref sPracovisko,xElement);
Run Code Online (Sandbox Code Playgroud)
但它突出显示sPracovisko_Dohodari并sPracovisko出现以下错误:Syntax error, ':' expected.
我试着将它们分开放在括号中,但没有运气.我究竟做错了什么?
PS sPracovisko和sPracovisko_Dohodari类型SubStredisko.
PS2:快速思考 - 也许我甚至不需要ref参数?我不太确定在这种情况下是否会创建一个新对象,或者我将(在我的空白中)直接更改该特定对象的值.
您不能将表达式用于ref参数.你需要两个电话:
if (sPracovisko == null) {
VyplatnePasky_Items(ref sPracovisko_Dohodari, xElement);
} else {
VyplatnePasky_Items(ref sPracovisko, xElement);
}
Run Code Online (Sandbox Code Playgroud)