小编Wai*_*Lee的帖子

使用分数的模块化算术

我使用整数和分数mod 10的乘法来解决这个加密问题.

这是等式:

7 * (4/11) mod 10 =?
Run Code Online (Sandbox Code Playgroud)

我知道我应该将它转换为整数,因为mod运算符不适用于分数,但我无法想象这个.明显,

7 * (4/11) = 28/11,
Run Code Online (Sandbox Code Playgroud)

但我不能得到一个分数的mod 10.教练想要确切的答案,而不是小数.任何帮助将不胜感激!

modulo

6
推荐指数
2
解决办法
6201
查看次数

Roslyn 获取类的依赖项

我正在尝试确定一个类,它引用了什么(其他命名空间或外部库命名空间)。对于给定的文档/语法树等似乎是开箱即用的,没有办法做到这一点......还有更多我需要的只是使用符号查找器,遍历整个代码库中的每个文件,然后调用查找,粘贴找到的引用在地图中,然后向后导航地图。

我在这里错了吗?我错过了一些简单的东西吗?我只是想建立一个依赖关系图......如果我从这个类开始,这里是它最终需要递归的所有东西。我不介意做研究,但我觉得我错过了一些东西……任何线索都会有所帮助

简要伪代码概念:

var msWorkspace = MSBuildWorkspace.Create();
var solution = msWorkspace.OpenSolutionAsync(solutionPath).Result;
foreach (var project in solution.Projects)
{
    Append(project.Name);
    foreach (var document in project.Documents)
    {
        Append("\t\t\t" + document.Name);
        if (document.SupportsSemanticModel)
        {
            SemanticModel model = await document.GetSemanticModelAsync();
            var node = await document.GetSyntaxRootAsync();
            //Need to be able to gather dependencies for this current doc 
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

c# roslyn

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

如何在CI服务器上使用NuGet包与ASP.NET网站

我有许多ASP.NET Web窗体网站(没有.csproj文件的网站),我试图弄清楚如何最好地使用NuGet包.使用Visual Studio 2015时,通过UI添加NuGet包可以正常工作(站点根目录中有packages.config),并且构建会将二进制文件放在bin文件夹中.

问题是尝试通过MSBuild在TeamCity上构建项目.对于其他项目,我可以将NuGet.exe与restore命令一起使用(对csproj或sln文件),并正确下载包并将其包含在输出中.但是,这不适用于网站,因此编译因缺少文件而失败.

作为最后的手段,我可​​以编写一个自定义脚本/构建步骤来手动将程序集复制到bin文件夹,但我想避免这种情况.我错过了什么吗?有没有办法将NuGet用于Visual Studio之外的网站?

asp.net teamcity webforms vs-web-site-project nuget

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

为什么在这里使用Thread.MemoryBarrier?

浏览MEF源代码我发现了这篇文章.有人可以解释为什么MemoryBarrier需要锁定?

整个方法是:

public void SatisfyImportsOnce(ComposablePart part)
{
    this.ThrowIfDisposed();

    if (this._importEngine == null)
    {
        ImportEngine importEngine = new ImportEngine(this, this._compositionOptions);

        lock(this._lock)
        {
            if (this._importEngine == null)
            {
                Thread.MemoryBarrier();
                this._importEngine = importEngine;
                importEngine = null;
            }
        }
        if(importEngine != null)
        {
            importEngine.Dispose();
        }
    }
    this._importEngine.SatisfyImportsOnce(part);
}
Run Code Online (Sandbox Code Playgroud)

c# thread-safety

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

如何将参数传递给装饰器,在那里处理,并转发到装饰函数?

我最近决定学习Python装饰器,并遵循这个方法.特别是在"向装饰者传递参数"一节中的例子.我想要做的是(1)装饰器函数应该接受一些参数(decarg),(2)处理它们,以及(3)用参数调用装饰函数(funarg).我看到如何为装饰器提供参数,但我还没有看到任何示例,其中装饰函数的参数仅在装饰器中可用.当我调用装饰函数时,我完全不确定我应该做什么参数,因为它的参数是在装饰器函数中计算的.以下是基于提到的howto的示例:

def dec(decarg):
    def _dec(fun):
        funarg = decarg + 7
        def _fun(funarg):
            return fun(funarg)
        return _fun
    return _dec

def main(mainarg):
    decarg = mainarg + 2
    @dec(decarg)
    def fun1(funarg):
        return funarg + 3
    return fun1(decarg)

main(1)
Run Code Online (Sandbox Code Playgroud)

这将返回6,当我期望13.我希望参数增加2 main()和7 in _dec(),这应该将此变量传递给装饰函数,它将3添加到它.

之后,我读了这个这个 howtos,并使用他们的方法我创建了一个像我想象的那样工作的例子:

class dec(object):

    def __init__(self, fun):
        self.fun = fun

    def __call__(self, decarg):
        funarg = decarg + 7
        return self.fun(funarg)

def main(mainarg):
    decarg = mainarg + 2
    @dec
    def fun1(funarg):
        return funarg + 3 …
Run Code Online (Sandbox Code Playgroud)

python python-decorators

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

为什么即使变量是引用类型,Equals和ReferenceEquals方法的结果也不同?

根据这个 msdn文档

如果当前实例是引用类型,则Equals(Object)方法测试引用相等性,并且对Equals(Object)方法的调用等效于对ReferenceEquals方法的调用.

那么为什么跟随代码导致两个不同的方法调用结果Equals返回True并且ReferenceEquals方法返回false,即使obj并且obj1引用类型为IsClass属性返回true.

using System;

public class Program
{
    public static void Main()
    {
        var obj = new { a = 1, b = 1 };
        var obj1 = new { a = 1, b = 1 };

        Console.WriteLine("obj.IsClass: " + obj.GetType().IsClass);

        Console.WriteLine("object.ReferenceEquals(obj, obj1): " + object.ReferenceEquals(obj, obj1));

        Console.WriteLine("obj.Equals(obj1): " + obj.Equals(obj1));
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

obj.IsClass:是的

object.ReferenceEquals(obj,obj1):False

obj.Equals(obj1):是的

c# reference equals object

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

Different behavior of val and var with an anonymous function and a placeholder

Code with val and var:

val adder: Int => Int = _ + 3 // Works fine
var adder: Int => Int = (_ + 3) // Works fine
var adder: Int => Int = _ + 3 // Error (using var, but not brackets)
Run Code Online (Sandbox Code Playgroud)

Error message for the last line with var:

';' expected but identifier found.

What can explain the difference in behavior between the val and var variant?

functional-programming scala anonymous-function

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

如何防止发布附属程序集

通过命令行使用“dotnet publish”进行发布时,始终会出现本地化和代码覆盖率附属程序集(如图所示)。

我找到了一个部分解决方案,即添加

<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
Run Code Online (Sandbox Code Playgroud)

在 .csproj 文件中删除那些特定于语言的程序集。之所以没有完全解决问题,是因为虽然它从常规项目中删除了所有本地化附属程序集,但仍有一些保留在 xUnit 项目中。图像中的每个语言文件夹仅包含一个 dll,“Microsoft.VisualStudio.TraceDataCollector.resources.dll”,而代码覆盖文件夹包含一些特定于代码覆盖的 dll 和一个 exe。

我尝试了我发现的各种解决方案,例如在 .csproj 中添加以下内容:

<ItemGroup>
   <Content Include="wwwroot\LicenceFiles" CopyToPublishDirectory="Never" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

但没有任何帮助。它用于删除 wwwroot 文件夹,但对于任何语言文件夹,当指定这些文件夹时它没有做任何事情。我上面提到的部分解决方案是唯一最终删除某些内容的方法。我正在寻找一种方法来删除这些文件夹,而无需使用批处理文件或类似文件,纯粹通过项目设置、发布选项或类似的东西。

我使用的是 dotnet 核心版本 2.2.203。

额外的文件夹

c# .net-core

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

如何修复“找不到默认 Python”错误

我在 Windows 服务器(64 位)中使用 python,它由另一个用户安装在他自己的目录中C:\user\userx\AppData\Local\Programs\Python\Python36

所有其他用户(不包括我)都可以在此服务器上运行 Python 文件。当我运行 Python 程序时,出现以下错误:

C:\Users\user x\AppData\Local\Programs\Python\Python36>test.py
launcher build: 32bit
launcher executable: Console
File 'C:\Users\my user\AppData\Local\py.ini' non-existent
File 'C:\Windows\py.ini' non-existent
Called with command line: "C:\Users\user x\AppData\Local\Programs\Python\Python
36\test.py"
maybe_handle_shebang: read 12 bytes
maybe_handle_shebang: BOM not found, using UTF-8
locating Pythons in 64bit registry
locate_pythons_for_key: unable to open PythonCore key in HKCU
locate_pythons_for_key: unable to open PythonCore key in HKLM
locating Pythons in native registry
locate_pythons_for_key: unable to open PythonCore key in HKCU
locate_pythons_for_key: unable to …
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-3.6

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

创建一个新列,为 Pandas DataFrame 中的重复值分配相同的索引

如何生成列出重复值的新列?例如,我的数据框是:

id    color

123   white
123   white
123   white
345   blue
345   blue
678   red
Run Code Online (Sandbox Code Playgroud)

这是所需的输出:

#    id   color

1   123   white
1   123   white
1   123   white 
2   345   blue
2   345   blue
3   678   red
Run Code Online (Sandbox Code Playgroud)

python indexing pandas

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