小编Kli*_*ker的帖子

EXEC sp_executesql-从存储过程调用中捕获RETURN值和OUTPUT值

给定一个简单的存储过程,它将填充一个OUTPUT参数以及RETURN一个sa值,例如:

CREATE PROCEDURE sp_test 
(
    @param_out INT OUTPUT
)
AS BEGIN
    SELECT @param_out = 9
    RETURN 2
END
Run Code Online (Sandbox Code Playgroud)

如何使用sp_executesql并捕获这两个值来调用此过程?

我试过了:

DECLARE @ret INT, @param_out INT
EXEC SP_EXECUTESQL N'EXEC @ret = sp_test',
    N'@ret INT OUTPUT, @param_out INT OUTPUT',
    @ret OUTPUT,
    @param_out OUTPUT

SELECT @ret, @param_out
Run Code Online (Sandbox Code Playgroud)

但是,这抱怨@param_out没有提供:

过程或函数“ sp_test”需要未提供的参数“ @param_out”。

sql sql-server sp-executesql

2
推荐指数
1
解决办法
438
查看次数

虽然循环使Unity崩溃,但不是无限的

我从类似的帖子中知道,无限的while循环因导致Unity3d崩溃而臭名昭著。我想隐含地在我正在处理的东西中进行一会儿循环,我相当确定这不是“无限”,但会导致游戏崩溃。

逻辑的想法是检查整数列表中的连续数字,并以此为基础应用加分。该列表包含“有效射击”,并且每次射击时都会添加一个新的int-有效射击越连续,奖金就越高。

这是我所拥有的:

        int count = 0;
        int firstItem = 0;
        int multiples = 3;
        int currentMultiple = 0;
        int bonusX = 0;

        foreach (int i in effectiveShots)
        {
            if (count == 0)
            {
                firstItem = i;
                count = 1;
            }

            else if (i == firstItem + count)
            {
                count++;
            }

        }

        while (count >= multiples)
        {
            currentMultiple = multiples;

            if (count == currentMultiple + multiples)
            {
                bonusX += 1;
            }

            if (bonusX > 10 || gameOver)
                break;

            UnityEngine.Debug.Log(bonusX);
        } …
Run Code Online (Sandbox Code Playgroud)

c# infinite-loop while-loop unity-game-engine

1
推荐指数
1
解决办法
1493
查看次数

将 JSON 数据加载到 C# 类中

我对 json 相当陌生,我正在尝试将一些 json 内容转换为 C# 类以存储它以供以后使用。我在尝试创建适合数据结构的类时遇到问题。json 内容的示例如下所示。

Json数据

{
    "FirstItem": {
        "id": 1,
        "type": "foo",
        "colours": ["blue", "black", "green"],
        "reviews": {
            "positive": ["The best", "unbelievable", "Awesome"],
            "negative": ["Sh*t", "Awful", "Dire", "Terrible", "Appalling"],
            "neutral": ["OK", "Meh"]
        }
    },
    "SecondItem": {
        "id": 2,
        "type": "bar",
        "colours": ["red", "white", "yellow"],
        "reviews": {
            "positive": ["Great", "Amazing", "Fantastic", "Perfect", "Uplifting"],
            "negative": ["Terrible", "Shocking", "abysmal"],
            "neutral": ["OK", "Standard", "Vanilla"]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

值得注意的是,这只是 json 数据的一个小样本,我希望使用更大的数据集,该数据集始终采用这种格式,但是 , FirstItemSecondItem名称?) 总是会有所不同。我可能最终会得到一个MillionthItem.

C# …

.net c# json class

1
推荐指数
1
解决办法
7621
查看次数

跨不同(共享)项目和命名空间的继承

我的解决方案包含三个项目

  • 共享项目
    • 包含一个LowestLevel类,以及一个MidLevel继承自的类LowestLevel
  • 班级图书馆
    • 包含对共享项目的引用
    • 包含一个HighestLevel继承自上述MidLevel类的类
  • 控制台应用
    • 包含对类库和共享项目的引用

在此输入图像描述

我在下面列出了这些类的代码 - 请注意每个项目都有自己的命名空间

namespace ClassLib
{
    public class HighestLevel : MidLevel
    {
        public HighestLevel() { }
    }
}

namespace SharedProj
{
    public class MidLevel : LowestLevel
    {
        public MidLevel() { }
    }

    public class LowestLevel
    {
        public LowestLevel() { }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的Console Applications Program类中,我正在尝试创建类的新实例HighestLevel,就像这样

LowestLevel myclass = new HighestLevel();
Run Code Online (Sandbox Code Playgroud)

但是,这在Visual Studio中给出了一个错误,说明

Cannot implicitly convert type ClassLib.HighestLevel to SharedProj.LowestLevel

任何人都可以帮助我理解为什么会这样,以及我如何解决它?当这三个类都在同一个项目/命名空间内时,似乎没有出现这个问题,所以也许它是由在各个项目中拆分这些类的方法引起的.

c# inheritance

1
推荐指数
1
解决办法
68
查看次数