小编M.k*_*ary的帖子

字符串前$的含义是什么?

我打算使用逐字字符串,但我错误地键入$而不是@.

但编译器没有给我任何错误和编译成功.

我想知道它是什么以及它做了什么.我搜索它但我找不到任何东西.

然而,它不像一个逐字字符串,因为我不能写:

string str = $"text\";
Run Code Online (Sandbox Code Playgroud)

有没有人知道$C#之前的字符串代表什么.

string str = $"text";
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2015 CTP.

c# string

235
推荐指数
10
解决办法
11万
查看次数

使用相同的哈希码生成两个不同的字符串

我想做一些测试,这些测试需要一些具有相同哈希码的字符串,但不是相同的字符串.我找不到任何例子,所以我决定写一个简单的程序来为我做.

下面的代码反复生成两个随机字符串,直到它们生成相同的哈希码.

    static Random r = new Random();
    static void Main(string[] args)
    {
        string str1, str2;
        do
        {
            str1 = GenerateString();
            str2 = GenerateString();
        } while (str1.GetHashCode() != str2.GetHashCode() && str1 != str2);

        Console.WriteLine("{0}\n{1}", str1, str2);
    }

    static string GenerateString()
    {
        string s = "";
        while (s.Length < 6)
        {
            s += (char)r.Next(char.MaxValue);
        }
        return s;
    }
Run Code Online (Sandbox Code Playgroud)

这段代码似乎有效(理论上),但可能需要几个世纪才能完成.所以我反过来考虑从一个哈希码生成两个字符串.

我知道从哈希码中检索字符串是不可能的,但是可以从中生成可能的字符串吗?

我正在使用Visual Studio 2015社区版.版本:14.0.23107.0D14REL.

.NET Framework:4.6.00081.

c# string hashcode

31
推荐指数
2
解决办法
2873
查看次数

声明变量时'for'循环的范围

我编码时遇到了这种奇怪的行为.所以我在这里问.

for声明变量时循环的范围是什么?

这段代码编译得很好

for (int i = 0; i < 10; i++) { }

for (int i = 0; i < 10; i++) { }
Run Code Online (Sandbox Code Playgroud)

这意味着两者int i的范围不同.

但是这段代码没有编译.

for (int i = 0; i < 10; i++) { }
int i; // Conflicts with both first loop and second one.
for (int i = 0; i < 10; i++) { }
Run Code Online (Sandbox Code Playgroud)

这意味着int i循环中间具有与第一循环和第二循环相同的范围.

但是int i在两个for循环中如何才能有不同的范围,但中间的范围相同int i?因为目前我看到他们处于同一水平.

我知道第二个代码没有编译.如果范围存在问题,为什么第一个代码会编译.这是编译器内部的异常吗?

c# scope for-loop

24
推荐指数
2
解决办法
3060
查看次数

IEnumerable重复功能

我遇到了一个奇怪的问题.我在这里重现了这个问题.

Random r = new Random();
List<int> x = new List<int> {1, 2, 3, 4, 5, 6};

var e = x.OrderBy(i => r.Next());
var list1 = e.ToList();
var list2 = e.ToList();

bool b = list1.SequenceEqual(list2);
Console.WriteLine(b); // prints false
Run Code Online (Sandbox Code Playgroud)

到目前为止,我认为Linq函数在被调用时会被执行.但是,在我调用ToListLinq函数后OrderBy再次执行此方法.为什么会这样?

c# linq

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

Xamarin iOS错误:无法解析引用

如果我在VS 2013中设置了Xamarin.Forms解决方案并尝试运行iOS版本,则会因以下错误而失败:

错误2无法解析引用:/ Users/Koray/Library/Caches/Xamarin/mtbs/builds/WalkiOS/aae389efbebffd5cd3625dcf99aad02c/C:/ Program Files(x86)/ Reference Assemblies/Microsoft/Framework/Xamarin.iOS/v1.0/Facades/System.Collections.Concurrent.dll Walk.iOS

Visual Studio的Xamarin构建主机已经建立,几周前它运行良好.我找不到任何修复错误的方法.

c# xamarin.ios ios xamarin

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

为什么PLINQ慢于循环?

假设我有这两种方法:

public BigInteger PFactorial(int n)
{
    return Enumerable.Range(1, n)
                     .AsParallel()
                     .Select(i => (BigInteger)i)
                     .Aggregate(BigInteger.One, BigInteger.Multiply);
}

public BigInteger Factorial(int n)
{
    BigInteger result = BigInteger.One;
    for(int i = 1; i <= n; i++)
        result *= i;
    return result;
 }
Run Code Online (Sandbox Code Playgroud)

以下是我得到的结果:

PFactorial(25000) -> 0,9897 seconds
Factorial(25000) -> 0,9252 seconds
Run Code Online (Sandbox Code Playgroud)

我知道PLINQ由于线程设置而有一些开销,但是如此大的n我期待PLINQ更快.

这是另一个结果:

PFactorial(50000) -> 4,91035 seconds
Factorial(50000) -> 4,40056 seconds
Run Code Online (Sandbox Code Playgroud)

c# linq task-parallel-library

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

忽略大小写android studio 3代码完成

当前代码完成区分大小写,因此当我输入名称时,它不会向我显示建议。我如何让它忽略大小写?

作为一个例子,当我输入Stasta它应该建议startActivity

我在设置中找不到它,老实说我很懒。

附注。我有 C# 编写习惯,随着时间的推移,这变得很烦人。

intellij-idea code-completion android-studio android-studio-3.0

10
推荐指数
2
解决办法
1516
查看次数

Visual Studio项目设置中的c#7.2在哪里?

我见过人们使用和讨论c#7.2功能,但我似乎无法找到它.

我有最新的更新,只7.1列出了版本.为什么以及如何获得v7.2?

在此输入图像描述


眼镜:

Visual Studio 2017版本15.4.4

Visual C#2017 - 00369-60000-00001-AA303

c# visual-studio project-settings c#-7.2

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

C++ 合并位域吗?

只是出于好奇,如果我有一个带有位字段的结构

struct Foo
{
    char a : 1;
    char b : 1;
    char c : 1;
}
Run Code Online (Sandbox Code Playgroud)

另一个带有位域和 struct Foo 的结构

struct Bar
{
    Foo foo;

    char a : 1;
    char b : 1;
    char c : 1;
}
Run Code Online (Sandbox Code Playgroud)

所有这些位都会被打包成一个整数吗?

在这种情况下,这些字段是否会被重新排序以形成单个位字段?

struct Baz
{
    char a : 1;

    int NotBitfield;

    char b : 1;
    char c : 1;
}
Run Code Online (Sandbox Code Playgroud)

c++ bit-fields

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

涉及多个值/字符串时的类实例化

当我们编写类似下面给出的代码(在控制台Main中)时,我们实际上是在实例化员工类吗?employee类包含get和set的序列号,名称以及作业标题和构造函数的List.

List<Employee> employee = new List<Employee>();
employee.Add(new Employee(1,"Thomas Alva Edison",new string[]{"Inventor"}));
Run Code Online (Sandbox Code Playgroud)

我的问题是它像下面的基本实例.

Employee e1=new Employee(1,"Thomas Alva Edison",new string[]{"Inventor"}))
Run Code Online (Sandbox Code Playgroud)

c#

7
推荐指数
2
解决办法
120
查看次数