小编Chr*_*ygg的帖子

返回通用方法的类型

我有一个泛型方法,它返回泛型类型的对象.一些代码:

public static T Foo<T>(string value)
{
    if (typeof(T) == typeof(String))
        return value;

    if (typeof(T) == typeof(int))
        return Int32.Parse(value);

    // Do more stuff
}
Run Code Online (Sandbox Code Playgroud)

我可以看到,编译器可能会抱怨这个("无法将类型'字符串’到'T’"),即使代码不会引起任何逻辑错误运行.有没有办法实现我正在寻找的东西?铸造无济于事......

.net generics methods return-type

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

SonarQube:无法为包含<X行的文件的文件创建行X的度量

我们最近将SonarQube服务器升级到最新版本(5.3)以及升级所有插件.服务器仅监视由Visual Studio Team Services(Visual Studio Online)构建的C#项目的单个构建.

起初,一切都运作良好(除了我将在另一个问题中描述的长期问题).但过了一段时间,我们在尝试将数据推送到SQ时开始出现类似下面的错误:

ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
    at org.sonar.runner.api.Runner.execute(Runner.java:100)
    at org.sonar.runner.Main.executeTask(Main.java:70)
    at org.sonar.runner.Main.execute(Main.java:59)
    at org.sonar.runner.Main.main(Main.java:53)
Caused by: java.lang.IllegalStateException: Can't create measure for line 47 for file '[PATH]/[FILENAME].cs' with 45 lines
    at org.sonar.batch.sensor.coverage.CoverageExclusions.validateMaxLine(CoverageExclusions.java:158)
    at org.sonar.batch.sensor.coverage.CoverageExclusions.validate(CoverageExclusions.java:129)
    at org.sonar.batch.deprecated.DeprecatedSensorContext.saveMeasure(DeprecatedSensorContext.java:204)
    at org.sonar.plugins.dotnet.tests.CoverageReportImportSensor.analyze(CoverageReportImportSensor.java:78)
    at org.sonar.plugins.dotnet.tests.CoverageReportImportSensor.analyse(CoverageReportImportSensor.java:59)
    at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
    at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:98)
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:185)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117)
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:243)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:238) …
Run Code Online (Sandbox Code Playgroud)

c# sonar-runner sonarqube sonarqube-msbuild-runner azure-devops

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

是否可以简化C#中的嵌套泛型?

我喜欢C#中的泛型,但有时与它们一起工作会变得有点复杂.下面的问题我时不时地遇到.有没有办法让这个场景更简单?我看不出怎么样,但我希望有人可以:)

给出三个基类:

public abstract class Inner
{
}

public abstract class Outer<T>
    where T : Inner
{
}

public abstract class Handler<TOuter, TInner>
    where TOuter : Outer<TInner>
    where TInner : Inner
{
    public abstract void SetValue(TInner value);
}
Run Code Online (Sandbox Code Playgroud)

还有一些简单的实现:

public class In : Inner
{
}

public class Out : Outer<In>
{
}

public class HandleOut : Handler<Out, In>
{
    public override void SetValue(In value) { }
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:For HandleOut,类型TInner是由"Out"类型给出的,那么是否有任何方法可以简化HandleOut类似的定义public class HandleOut : Handler<Out> …

c# generics

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

Service Fabric Actor的性能是否不可靠?

我正在使用一个Service Fabric应用程序,我无法像希望的那样执行它.

主要问题与一个演员调用另一个演员有关.我正在记录从调用actor看到的给定调用所需的时间,并记录在接收actor上花费的时间.

我所看到的是,接收方记录工作负载需要几毫秒(最多20个).但是,调用actor会记录从50毫秒到2秒以上的任何内容.在实际逻辑运行之前,我无法解释的延迟.一旦方法返回,调用actor就会快速获得响应.

这是可以预期的吗?创建一个全新的演员实例肯定是最糟糕的 - 但是即使我在调用演员时我也会看到这种事情,我之前做过不同的调用.

传递的参数是相当基本的 - 我不怀疑反序列化是个问题.

我意识到演员将在集群内部分布,但这种规模的开销似乎不成比例.

所以,我的问题是:这是"按预期"还是表明我们做错了什么?

我将补充说,这是在一个安静的测试环境中,因此被其他请求锁定的演员不是问题.

我可以根据要求提供更多信息,但我不太确定最相关的内容.

azure-service-fabric reliable-actors

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