小编Wai*_*Lee的帖子

Roslyn代码重写

我正在尝试用Roslyn重写代码.我想将GreaterThanToken更改为EqualsEqualsToken.到目前为止,这是我的代码:

public class ToParse
{
    public bool MethodToConvert(int param)
    {
        return (1 > param);
    }
}
Run Code Online (Sandbox Code Playgroud)

执行后,Console.WriteLine打印更改的标记return (1 == param); 但是当我用ilspy打开testassembly.dll时,我仍然看到return 1 > param; 任何建议?

c# roslyn

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

Obfuscar SkipType 配置元素不适用于枚举

ObfuscarSkipType配置元素似乎不适用于枚举。这是我相当小的配置文件。

<?xml version="1.0"?>
<configuration>

  <startup><supportedRuntime version="v4.0" 
     sku=".NETFramework,Version=v4.0,Profile=Client"/>
  </startup>

  <Obfuscator>

    <Var name="InPath"  
value="\users\user\docs\vs2013\projects\wpfapp\wpfapp\bin\debug" />
    <Var name="OutPath" 
value="\users\user\docs\vs2013\projects\wpfapp\wpfapp\bin\debug" />

    <Module file="$(InPath)\wpfapp.exe" />

    <Var name="KeepPublicApi" value="true" />
    <Var name="HidePrivateApi" value="true" />

    <SkipType name="WpfApp.Category" skipFields="true" skipProperties="true" />

  </Obfuscator>

</configuration>
Run Code Online (Sandbox Code Playgroud)

地图输出文件显示跳过不起作用并且枚举类型Category被重命名。

Renamed Types:

[WpfApp]WpfApp.Category -> [WpfApp]A.a
{
    WpfApp.Category [WpfApp]WpfApp.Category WpfApp.Category::Low -> A
    WpfApp.Category [WpfApp]WpfApp.Category WpfApp.Category::High -> a

    System.Int32 [WpfApp]System.Int32 WpfApp.Category::value__ skipped:  special name
}
Run Code Online (Sandbox Code Playgroud)

编辑:该元素<SkipType name="WpfApp.Category" />导致相同的问题。

编辑:该元素<SkipType name="WpfApp.Category" skipFields="true" />导致相同的问题。

编辑:该元素<SkipField type="WpfApp.Category" …

enums obfuscar

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

c#T4模板引擎无法导入"System.Xml"

我使用此MSDN链接中的方法(" 使用自定义主机处理文本模板 ").

这允许我以编程方式使用T4(模板可以在运行时使用).

但是有一个问题,在模板代码中我无法使用

<#@ Import Namespace="System.Xml" #>
Run Code Online (Sandbox Code Playgroud)

我会得到这样的消息:

错误CS0234:编译转换:命名空间"系统"中不存在类型或命名空间名称"Xml"(您是否缺少程序集引用?)

我该如何解决这个问题?

t4

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

如何使用c#解析包含$(美元)字段?

任何人都可以告诉我,我们如何解析一个以字母开头的字段$

见下面的样本,

{
    id: 123,
    $firstName: "abc",
    $lastName: "xyz"
}
Run Code Online (Sandbox Code Playgroud)

我曾经通过下面的对象解析它,但是将值变为空.

var jsonString = "{\"id\": 123,\"$firstName\": \"abc\", \"$lastName\": \"xyz\"}";
var restaurant = Newtonsoft.Json.JsonConvert.DeserializeObject<Models.Data>(jsonString);
Run Code Online (Sandbox Code Playgroud)

数据

public class Data
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

FirstName并且LastName正在null

请告诉我我做错了什么.

c# json bson

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

Parallel.ForEach行为

我理解,在Parallel.ForEach循环中,每个线程可能在任何给定时间执行循环的不同部分.但是,每个线程是否按顺序执行循环中的代码?我只是在MSDN上阅读" Parallel Loops ",它说:

有时,两个步骤的顺序与循环顺序时相反.唯一的保证是所有循环的迭代都将在循环结束时运行.

说我有以下内容:

IEnumerable<MyObject> myEnumerable = ...
Parallel.ForEach(myEnumerable, obj =>
{
     A();
     B();
     C();
});
Run Code Online (Sandbox Code Playgroud)

我知道线程1可能正在执行A()线程2 C(),但是每个线程将在循环中顺序执行代码.是否线程1做A() B() C()或可能它可能做B(),C(),A()

c# multithreading parallel.foreach

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

如果,不等于和/或帮助(不确定哪个)

我试图询问输入是否是合法的数值变量.我已经尝试过这种方式(它显示错误的输出,如图所示),使用==和else(其中说其他错误)并且不知道为什么它不起作用.任何建议或其他尝试这样做的方式将非常感激.

static void start()
{
    // start of broken code

    Console.WriteLine("Please select a variable type");
    string selection = Console.ReadLine();
    if ((selection != "short") || (selection != "ushort") || (selection != "int") || (selection != "uint") || (selection != "byte") || (selection != "long") || (selection != "ulong"));
    {
        Console.WriteLine("That is not a correct form of variable");
        Console.WriteLine("Let's try this again");
        start();
    }

    // end of broken code

    Console.WriteLine("You selected ", selection);
    Console.WriteLine("Is this correct? (Y/N)");
    string sure = Console.ReadLine();
    if …
Run Code Online (Sandbox Code Playgroud)

c#

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

带平方根的while循环的运行时间/时间复杂度

这个问题看起来比较简单,但是我好像找不到n的运行时间。

这是问题所在:

j = n;
while(j >= 2) {
    j = j^(1/2)
}
Run Code Online (Sandbox Code Playgroud)

我真的不需要总运行时间,我只需要知道如何计算第二行和第三行被击中的次数(它们应该相同)。我也想知道是否有某种公式可以找到这个。我可以看到上面的内容相当于:

for(j = n; n >= 2; j = j^(1/2)
Run Code Online (Sandbox Code Playgroud)

请注意,操作的类型无关紧要,每次执行一行,都计为 1 个时间单位。所以第 1 行只是 1 个时间单位,第 2 行将是:

  • 如果 n 为 1,则为 0 个时间单位,
  • 如果 n 为 2,则为 1 个时间单位,
  • 如果 n 为 4,则为 2 个时间单位,
  • 如果 n 为 16,则为 3 个时间单位,依此类推。

在此先感谢任何提供帮助的人!这是非常赞赏!

performance code-analysis time-complexity

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

为什么KeyEvent中的数字小键盘数字和常规数字不一样?

此代码不允许我从数字小键盘输入数值.

private void textBox1_KeyDown( object sender, KeyEventArgs e ) {
    e.SuppressKeyPress = !( (e.KeyValue >= 48 && e.KeyValue <= 57) )
}
Run Code Online (Sandbox Code Playgroud)

如何包含一般数值(包括常规键和数字键)?

c# textbox key-events numpad

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

量角器按名称标签获取元素

目前我正在使用量角器和Selenium web Driver.

我有以下问题:

我有一个html页面,我让量角器点击一个按钮.然后弹出一个窗口.该窗口包含一个名为"Description"的文本框:

<input type="Text" name="Description" ... />
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试以下内容时:

element(by.css('[name="Description"]')).sendKeys("rabbababab");
Run Code Online (Sandbox Code Playgroud)

浏览器什么都不做,但量角器不会抛出错误.TextBox中没有输入任何文本.不幸的是,名称是识别input-TextBox的唯一方法.

我究竟做错了什么?

javascript testing selenium selenium-webdriver protractor

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

这是使用System.Threading.Timer运行预定的async/await方法的正确方法吗?

我目前正在开发一个项目,我想在后台执行一些定期更新,我想使用System.Threading.Timer为此目的使用async/await.我找不到关于这个特定主题的任何文章.

以下代码段有效.我只是不确定使用异步方法返回void,因为它只应用于按钮点击等事件处理程序.在下面的代码中是否存在"违反"最佳做法的内容?

public class ScheduledCache
{
    private CancellationTokenSource _cancelSource = new CancellationTokenSource();
    private Request _request = new Request();
    private Timer _timer;

    public void Start()
    {
        _cancelSource = new CancellationTokenSource();
        _timer = new Timer(UpdateAsync, null, 2000, Timeout.Infinite);
    }

    public void Stop()
    {
        _cancelSource.Cancel();
    }

    public async void UpdateAsync(object state)
    {
        try
        {
            await Task.WhenAll(UpdateSomethingAsync(_cancelSource.Token), UpdateSomethingElseAsync(_cancelSource.Token));
        }
        catch (OperationCanceledException)
        {
            // Handle cancellation
        }
        catch (Exception exception)
        {
            // Handle exception
        }
        finally
        {
            if (_cancelSource.IsCancellationRequested)
                _timer = new Timer(UpdateAsync, null, 2000, …
Run Code Online (Sandbox Code Playgroud)

c# multithreading asynchronous timer async-await

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