(method ComponentDefinitionMethod, NameSpace string, ClassName string, isGlobal bool)
| 267 | } |
| 268 | |
| 269 | func getCSharpClassParameters(method ComponentDefinitionMethod, NameSpace string, ClassName string, isGlobal bool) (string, string, error) { |
| 270 | parameters := "" |
| 271 | returnType := "" |
| 272 | |
| 273 | for k := 0; k < len(method.Params); k++ { |
| 274 | param := method.Params[k] |
| 275 | ParamTypeName, err := getCSharpParameterType(param.ParamType, NameSpace, param.ParamClass, false) |
| 276 | if err != nil { |
| 277 | return "", "", err |
| 278 | } |
| 279 | |
| 280 | switch param.ParamPass { |
| 281 | case "in": |
| 282 | if parameters != "" { |
| 283 | parameters = parameters + ", " |
| 284 | } |
| 285 | parameters = parameters + ParamTypeName + " A" + param.ParamName |
| 286 | |
| 287 | case "out": |
| 288 | if parameters != "" { |
| 289 | parameters = parameters + ", " |
| 290 | } |
| 291 | parameters = parameters + "out " + ParamTypeName + " A" + param.ParamName |
| 292 | |
| 293 | case "return": |
| 294 | if returnType != "" { |
| 295 | return "", "", fmt.Errorf("duplicate return value \"%s\" for Pascal method \"%s\"", param.ParamName, method.MethodName) |
| 296 | } |
| 297 | returnType = ParamTypeName |
| 298 | } |
| 299 | } |
| 300 | |
| 301 | if returnType == "" { |
| 302 | returnType = "void" |
| 303 | } |
| 304 | |
| 305 | return parameters, returnType, nil |
| 306 | } |
| 307 | |
| 308 | func writeCSharpClassMethodImplementation(method ComponentDefinitionMethod, w LanguageWriter, NameSpace string, ClassName string, isGlobal bool, spacing string) error { |
| 309 |
no test coverage detected