小编Cid*_*Cid的帖子

使用 C#8.0 在 Visual Studio 中优化 switch case 后出现意外结果

今天在编码时,visual studio 通知我我的 switch case 可以优化。但是我拥有的代码与 Visual Studio 从我的 switch 案例生成的代码不会产生相同的结果。

我使用的枚举:

public enum State
{
    ExampleA,
    ExampleB,
    ExampleC
};
Run Code Online (Sandbox Code Playgroud)

以下代码运行后,该值等于 2147483647。

State stateExample = State.ExampleB;
double value;

switch (stateExample)
{
    case State.ExampleA:
        value = BitConverter.ToSingle(BitConverter.GetBytes((long)2147483646), 0);
        break;
    case State.ExampleB:
        value = BitConverter.ToUInt32(BitConverter.GetBytes((long)2147483647), 0);
        break;
    case State.ExampleC:
        value = BitConverter.ToInt16(BitConverter.GetBytes((long)2147483648), 0);
        break;
    default:
        value = 0;
        break;
}
Run Code Online (Sandbox Code Playgroud)

但是当visual studio优化switch case的时候,这个值变成了2147483648。

State stateExample = State.ExampleB;
double value = stateExample switch
{
    State.ExampleA => BitConverter.ToSingle(BitConverter.GetBytes((long)2147483646), 0), //Commenting this line results in …
Run Code Online (Sandbox Code Playgroud)

c# c#-8.0

18
推荐指数
2
解决办法
687
查看次数

如何将 JavaScript 函数表达式保存在内存中?

let sayBye = function () {
    console.log(`Bye`);
}

let bye = sayBye;   
sayBye = null;    // X

bye();            // Y

Run Code Online (Sandbox Code Playgroud)

在问这个问题之前,我在谷歌搜索,我找到了这篇文章。

然后我想,在第 X 行之前,结构类似于这样:


sayBye ---------------                                              
                      |      
                      |  => function() {....}
                      |
bye-------------------

Run Code Online (Sandbox Code Playgroud)

x线之后,我以为是这样的:

sayBye                        MEMORY                                      
                            
                      |  => function() {....}
                      |
bye-------------------

Run Code Online (Sandbox Code Playgroud)

但是当我在 Firefox 开发人员工具中写再见时,我看到了这个

这怎么可能?我写let bye = sayBye;的时候sayBye被复制了吗?

let sayBye = function () {
    console.log(`Bye`);
}

let bye = sayBye;   
sayBye = null;    // X

bye();            // Y

Run Code Online (Sandbox Code Playgroud)

javascript

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

“from”在此位置无效,需要:EOF、“;”

我尝试将 John Smith 的工资增加 10%,并假设我不知道 John Smith 的 emp_number。

update m
    set m.mon_hourly_pay_rate = m.mon_hourly_pay_rate*1.1
from monthly_pay m
inner join Employee e
    on e.emp_number=m.emp_number
where e.emp_name = "John Smith";
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?from 有红色下划线的单词表示“from”在此位置无效,期望:EOF,“;” 但我用谷歌搜索了一下,没有发现什么问题

mysql sql

5
推荐指数
1
解决办法
3万
查看次数

PHP 7.4 修剪字符串变量之间的空格

我遇到了一个问题,当我将多个变量输出到一个类属性中时,它们都被压缩成一个单词,而不是像最初创作的那样作为单独的单词保存,如

<div class="className {{ variable1 }} {{ variable2 }}"><div>
Run Code Online (Sandbox Code Playgroud)

在运行时,这被呈现为:

<div class="className variable1variable2"><div>
Run Code Online (Sandbox Code Playgroud)

知道什么会导致这种情况以及如何避免吗?

php twig timber

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

如何从 json 字符串中获取对象列表 c# Newtonsoft.json

我正在尝试将 JSON 字符串转换为对象列表,但出现错误

无法将当前 JSON 对象反序列化为 List 类型,因为该类型需要 JSON 数组才能正确反序列化。

我检索了 json,它看起来像这样

{
    "Code":0,
    "Message":"OK",
    "Data":
    {
        "Houses":
        [
            {
                "Id":1,
                "Name":"House 1",
                "Area":"22.00",
                "ShortName":"H1",
                "FarmName":"Farm 1"
            },
            {
                "Id":2,
                "Name":"Farmi1 - House 1",
                "Area":"1000.00",
                "ShortName":"H1",
                "FarmName":"Farm 1"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我说

List<House> Houses = JsonConvert.DeserializeObject<List<House>>(json); 
Run Code Online (Sandbox Code Playgroud)

c# json json.net

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

用于在表中存储日期的字符串由于未知原因正在转换 int

我试图将日期作为字符串存储在表中,但日期不断转换为与日期相关的负 4 位数字,我一生都无法弄清楚我在哪里弄乱。请注意,我使用的是 C# 和 SQL Server 的组合

foreach(DataRow dr in dt.Rows)
{
    int qty = 0;
    string pname = "";

    SqlCommand cmd3 = con.CreateCommand();
    cmd3.CommandType = CommandType.Text;
    cmd3.CommandText = "insert into order_item values('" + orderid.ToString() + "','" + dr["product"].ToString() + "'," +
        "'" + dr["price"].ToString() + "','" + dr["qty"].ToString() + "','"+ dr["total"].ToString() + "')";
    cmd3.ExecuteNonQuery();

    qty = Convert.ToInt32(dr["qty"].ToString());
    pname = dr["product"].ToString();

    SqlCommand cmd6 = con.CreateCommand();
    cmd6.CommandType = CommandType.Text;
    cmd6.CommandText = "update stock set product_qty = product_qty - " + …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server string date

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

C 中的三元运算符

#include <stdio.h>
int main()
{
    int x = 1;
    short int i = 2;
    float f = 3;
    if (sizeof((x == 2) ? f : i) == sizeof(float)) 
        printf("float\n");
    else if (sizeof((x == 2) ? f : i) == sizeof(short int))
        printf("short int\n");
}
Run Code Online (Sandbox Code Playgroud)

输出是“浮动”。所以我不明白为什么sizeof((x==2)?f:i)总是返回4。我认为声明缺少变量(x==2)?f:i;但它总是返回4(sizeof(f))

你能帮助我吗!这是我学习的第一门编程语言。我知道这个问题很愚蠢,但对我来说很难。感谢您花时间:) 祝您有美好的一天 ;)

而我第一次尝试使用 Stackoverflow 时,可能会出现一些错误。希望你原谅我

c operators ternary

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

如何在不使用CONCAT()的情况下串联字段

由于某些原因,我无法将sql表中的名字和姓氏结合在一起。

这是我尝试过的:

SELECT firstname, lastname, firstname + ' ' + lastname as fullname from students;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它在全名下的每一行的结果“ 0”中显示,但是按正常方式填充了firstname和lastname列。

请帮忙。***请注意,我不想使用CONCAT()函数

屏幕截图在这里: table

提前致谢

mysql sql

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

如何使用JSON.NET检查JSON中的缺失字段

我有这个JSON:

{
    "Foo": "A value",
    "Bar": 42
}
Run Code Online (Sandbox Code Playgroud)

要反序列化它,我有这个类:

public class SomeClass
{
    public string Foo { get; set; }
    public int Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下方法对其进行反序列化:

string json1 = "{\"Foo\":\"A value\",\"Bar\":42}";
var MyObj1 = JsonConvert.DeserializeObject<SomeClass>(json1);
Debug.WriteLine("Foo1 : " + MyObj1.Foo); //Foo1 : A value
Debug.WriteLine("Bar1 : " + MyObj1.Bar); //Bar1 : 42
Run Code Online (Sandbox Code Playgroud)

当JSON中缺少字段时,我需要特定的处理方法.

例如:

{
    "Foo": "Another value"
}
Run Code Online (Sandbox Code Playgroud)

当使用与上面相同的代码时,Bar设置为0.它可能在原始JSON中设置为0,因此如果它存在与否,我无法判断该值.

string json2 = "{\"Foo\":\"Another value\"}";
var MyObj2 = JsonConvert.DeserializeObject<SomeClass>(json2);
Debug.WriteLine("Foo2 : " + MyObj2.Foo); //Foo2 …
Run Code Online (Sandbox Code Playgroud)

c# json json.net json-deserialization

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

Doctrine 中的自定义 QueryBuilder

我有这个问题,我想创建“智能”标准。假设有一个模型为 1 Author : n Books。

所以,而不是:

$qb = $em->getRepository('Books')->createQueryBuilder('b')
    ->join('b.author', 'a')
    ->where('a.dod is null')
    ->where('a.name = :name')
    ->setParameter('name', 'Mozart');
    ;
Run Code Online (Sandbox Code Playgroud)

...我想做类似的事情:

$qb = $em->getRepository('Books')->createQueryBuilder('b')
    ->whereAuthorIsAlive()
    ->whereAuthorName('Mozart');
Run Code Online (Sandbox Code Playgroud)

我知道创建自定义 EntityManager 的可能性,但这还不够。自定义 QueryBuider 会更合适。

php doctrine-orm

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

从数组中检索的var是未定义的?

下面的代码包含一个名为buttonColours的数组,一个0到3的随机数,然后randomColour应该是buttonColours数组中的一个随机颜色,但事实并非如此.它将randomColour归类为undefined.

var buttonColours = ["blue", "red", "green"];
var randomNumber = Math.floor(Math.random * 3);
var randomColour = buttonColours[randomNumber];
console.log(randomColour);
Run Code Online (Sandbox Code Playgroud)

console.log仅将randomColor记录为undefined.有原因吗?

javascript jquery

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

如何在SQL中使用保留字作为表名?

使用此查询时:

INSERT INTO order (order_quantity)
           VALUES ('50')
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

您的SQL语法有错误; 查看与您的MariaDB服务器版本对应的手册,以便在第146行的'order(order_quantity)VALUES('50')附近使用正确的语法

我的查询有什么问题?

sql mariadb

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

使用特定值更新特定列

我有一个包含3列的表:用户名,密码和ID。每个密码和用户名都有一个特定的ID。表名称例如是“帐户”。

我要更新具有特定ID的密码。我试过了:

 UPDATE Account SET password = "newPassword"
                        where id = 1
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用。它将抱怨“ newPassword”不是有效的列名。我在SQL Management Studio中尝试查询。

sql sql-server

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