我在项目中启用了代码分析,并将警告视为错误
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup>
<EnforceCodeStyleInBuild>True</EnforceCodeStyleInBuild>
<PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我添加了 .editorConfig 并设置了一些规则(例如,没有多个空行)。
我在 IDE 的错误列表中看到错误,并且代码中显示红色摆动:
然而,该项目仍然构建得很好。(我可以删除 bin 文件夹并构建,查看错误,它仍然将文件输出到 bin 文件夹中)。
为什么它会忽略错误?
我想让这些代码分析错误实际上使构建失败。
我有一个异步方法.
private static async Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我叫它用
await InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
视觉工作室不会建立一个说 async method must return void, Task or Task<T>
它也红色曲线InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);说:
任务不包含ConfigureAwait()的定义
文件顶部的用法是
using System.Threading.Tasks;
using System.Threading;
Run Code Online (Sandbox Code Playgroud)
它所针对的.net框架是4.6.1
我有一个具有以下属性的 ViewModel
public Employee SelectedEmployee
{
get { return _selectedEmployee; }
set
{
if (value == _selectedEmployee) return;
_selectedEmployee = value;
if (_selectedEmployee != null)
{
StaffHolidaysViewModel.HolidayAllowance = _staffDataService.EmployeeHolidayAllowance(_selectedEmployee.Id);
FireEmployeeSelectedMessage(SelectedEmployee.Id);
}
RaisePropertyChanged();
RaisePropertyChanged(nameof(Allowance));
RaisePropertyChanged(nameof(Taken));
RaisePropertyChanged(nameof(Remaining));
RaisePropertyChanged(nameof(TotalAbsences));
RaisePropertyChanged(nameof(TotalSick));
RaisePropertyChanged(nameof(TotalNonSickAbsences));
RaisePropertyChanged(nameof(SelectedEmployeeLeavingDate));
UpdateCanExecuteChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
线路
StaffHolidaysViewModel.HolidayAllowance = _staffDataService.EmployeeHolidayAllowance(_selectedEmployee.Id);
Run Code Online (Sandbox Code Playgroud)
包含对我想要异步的方法的调用。我不知道如何执行此操作,因为 SelectedEmployee 是绑定属性。
<ComboBox Name="StaffMembers" ItemsSource="{Binding FilteredEmployees}" SelectedItem="{Binding SelectedEmployee}" Width="200" BorderThickness="1" BorderBrush="DimGray">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
由于它是一个属性,所以我无法创建它的类型Task<Employee>
异步绑定 MVVM 属性的推荐方法是什么?还是根本不可能?
尝试在解决方案中打开任何.cs文件时出现以下错误。
我尝试过1)重新启动Visual Studio,2)重新启动计算机,3)删除所有obj文件夹,4)删除所有.vs文件和文件夹,但仍然无法打开任何文件。
如果我在解决方案资源管理器中双击文件或使用F7,则会出现相同的错误消息。
这些文件确实存在。
我也曾尝试禁用重新共享器,以防引起问题,但这没有帮助。
我也尝试使用Ctrl + T导航到类,输入类名称并选择该类。没有错误消息,但没有加载。
我有一个后端控制器方法
[Route("{ropeId}/segments")]
[HttpPut]
public async Task<IActionResult> Put([NotNull] [FromBody] IEnumerable<Segment> segments)
{
Debug.WriteLine("In here!");
}
Run Code Online (Sandbox Code Playgroud)
我可以使用 Rider 中的便笺簿击中此罚款:
PUT https://localhost:6001/api/ropes/3/segments
Accept: */*
Cache-Control: no-cache
Content-Type: application/json
[{"SegmentNo":1,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":16,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1}, {"SegmentNo":50,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":69,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":101,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1}, {"SegmentNo":106,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1},
{"SegmentNo":128,"RopeId":3,"LastReceived":"2019-12-28T14:34:35.9799039+01:00","BendDamage":0.018,"Temperature":30.0,"LoadLevel":1}]
Run Code Online (Sandbox Code Playgroud)
细分模型:
public sealed class Segment
{
public Segment(short segmentNo,
byte ropeId,
DateTime lastReceived,
double bendDamage,
double temperature,
byte loadLevel)
{
SegmentNo = segmentNo;
RopeId = ropeId;
LastReceived = lastReceived;
BendDamage = bendDamage;
Temperature = temperature;
LoadLevel = loadLevel;
}
public short SegmentNo { get; }
public byte RopeId …Run Code Online (Sandbox Code Playgroud) 我有以下JSON:
{
"From": "stuart",
"Payload": {
"Alert": "Critical",
"Recipient": "Joe"
}
}
Run Code Online (Sandbox Code Playgroud)
我想根据Alert中的字段是否为"严重"来进行路由.
我已经尝试过RouteOnAttribute处理器和EvaluateJson处理器.两者都没有工作.
对于RouteOnAttribute,我试过了
提醒: ${Payload:jsonPath('$.Alert'):equals('Critical')}
然后我有一个基于Alerted的关系,但没有任何东西进入我的RouteOnAttribute处理器,队列只是坐在那里直到它填满10,000.
我需要路由完整的JSON,我不能丢失路由中的信息.
我有 2 个数组
asc = [0, 1, 2, 3, 4, 5]
dsc = [5, 4, 3, 2, 1, 0]
Run Code Online (Sandbox Code Playgroud)
我想要一个新数组,它是将 asc 和 dsc 中的每个相应项相乘的结果
我已经习惯了 Clojure map
(map #(* %1 %2) asc dsc) ;=> (0 4 6 6 4 0)
Run Code Online (Sandbox Code Playgroud)
它们在 Ruby 中是否等效,在 Ruby 中执行此操作的惯用方法是什么?
我是 Ruby 的新手,但它似乎有非常好的简洁解决方案,所以我想我错过了一些东西。
我只是写:
i = 0
res = []
while i < asc.length() do
res.append(asc[i] * dsc[i])
end
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
package main
import (
"fmt"
)
func recoverFoo() {
if r := recover(); r != nil {
println("Recovered")
}
}
func foo() (int, error) {
defer recoverFoo()
panic("shit!")
}
func main() {
x, err := foo()
println("after foo x = " + fmt.Sprint(x))
if err != nil {
println("An error occured")
} else {
println("No error occured")
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我正在调用 foo (实际上,我的函数 foo 正在调用第三方库,该库有时会出现恐慌,但有时也会返回错误)。如果它出现恐慌,我不能让它使应用程序崩溃,但我需要知道出了什么问题,因为我必须在错误时写入本地存储。
在这种情况下,虽然从 Foo 返回的值x可以有一个有效值 0。所以恢复设置 x 和 err 为其默认值(0 和 nil),并不能告诉我是否确实发生了错误......
我看到两种可能的解决方案,(1)我将 err 和 …
我有一个函数可以从一串有效字符中生成一个随机字符串。当它选择一个 £ 时,我偶尔会得到奇怪的结果
我已将其复制到以下最小示例中:
func foo() string {
validChars := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~@:!£$%^&*"
var result strings.Builder
for i := 0; i < len(validChars); i++ {
currChar := validChars[i]
result.WriteString(string(currChar))
}
return result.String()
}
Run Code Online (Sandbox Code Playgroud)
我希望这会回来
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~@:!£$%^&*
但它没有,它产生
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~@:!£$%^&*
^
where did you come from ?
Run Code Online (Sandbox Code Playgroud)
如果我从原始的 validChars 字符串中取出 £ 符号,那个奇怪的 A 就会消失。
func foo() string {
validChars := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~@:!$%^&*"
var result strings.Builder
for i := 0; i < len(validChars); i++ {
currChar := validChars[i]
result.WriteString(string(currChar))
}
return result.String()
}
Run Code Online (Sandbox Code Playgroud)
这产生
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~@:!$%^&*
我有一张看起来像这样的地图:
{\a [\h]
\h [\w \w]
\i [\w \h \t]
\p [\t \u \h \a]
\s [\t \a \t \t \i \w \h]
\t [\a]
\u [\t \t \s]
\w []}
Run Code Online (Sandbox Code Playgroud)
我想从键和值中删除例如 \w。即离开这个
{\a [\h]
\h []
\i [\h \t]
\p [\t \u \h \a]
\s [\t \a \t \t \i \h]
\t [\a]
\u [\t \t \s]}
Run Code Online (Sandbox Code Playgroud)
注意,\w 键已经消失,\w 已经从所有值消失了!
现在我有这个,它有效,但我相信一定有更好的,更多的 Clojurey 方式!
(defn remove-last [last cmap]
(reduce-kv (fn [acc k v]
(if (empty? v)
acc
(into acc {k …Run Code Online (Sandbox Code Playgroud) 他们是 Clojure 中从 int 到 int 作为字符的一种方式,例如 1 到 \1 ?
我有一个字符串s,我想解析出与数字匹配的数字n(n 将始终为 0 到 9)
例如
(let [n 1]
(filter #(= ??? %) "123123123"))
Run Code Online (Sandbox Code Playgroud)
在哪里 ???将 n 作为 \n,例如将返回“111”
或者也许有更好的方法将字符串过滤为仅单个数字的实例?
c# ×4
clojure ×2
go ×2
.net-core ×1
apache-nifi ×1
arrays ×1
async-await ×1
asynchronous ×1
httpclient ×1
idioms ×1
iteration ×1
json ×1
loops ×1
mvvm ×1
ruby ×1
wpf ×1