小编Dai*_*Dai的帖子

为什么"View Heap"结果与Visual Studio中的"Process Memory Usage"不匹配

我试图使用Visual Studio来跟踪我的应用程序中的内存使用情况.在"诊断工具"窗口中,它显示我的应用程序使用的是423 MB.谢谢我转到'内存使用'和'ViewHeap',当我点击快照时,我得到一个表格,其中包含我的对象大小.

在此输入图像描述

但当我添加这些数字时:= 3317228 + 403764 + 354832 + 264984 + 244836 + 195748 + 144032 + 28840 + 16452 + 13920 + 13888 + 3428 + 2100 + 20 = 5004072 = 4.77 MB

我的问题是为什么这个数字4.77MB与我在"记忆"图表中看到的423MB不匹配.我希望左边的表格可以看到423 MB的位置.请告诉我,我错过了什么?

c# visual-studio

30
推荐指数
1
解决办法
9263
查看次数

为什么编译器会抱怨"当所有代码路径都没有返回值"时,我可以清楚地看到它们的作用?

我试图找出编译器为什么有这个功能的问题.它给了我"并非所有代码路径返回值"错误,但是我看不到控制流将传递给if( a )表达式而a不是真的情况(所以这if( a )是多余的,但编译器似乎没有认识到这一点) .

public static Boolean Foo(Boolean x)
{
    Boolean a = false;
    if( x )
    {
        a = true;
    }
    else
    {
        try
        {
            SomethingThatMightThrow();
            Assert.IsFalse( a );
            return a;
        }
        catch(Exception)
        {
            a = true;
        }
    }

    if( a )
    {
        return x;
    }
}
Run Code Online (Sandbox Code Playgroud)

立即解决方法是简单地立即删除if( a )guard语句return x- 但是为什么编译器会抱怨,即使它应该能够静态地证明所有可能的代码路径都会出现return声明?至关重要的是,没有循环,这通常是它无法证明的主要原因return.

我正在使用VS2015 Update 3.

c# static-analysis compiler-errors

28
推荐指数
3
解决办法
2766
查看次数

在selenium IDE中使用大写和小写xpath函数

我试图让使用XPath功能的XPath查询lower-caseupper-case,但他们似乎并不硒工作(如测试我的XPath之前,我申请的话).

不起作用的示例:

//*[.=upper-case('some text')]
Run Code Online (Sandbox Code Playgroud)

只要我不使用大写和小写,我就可以在复杂路径中找到我需要的节点,甚至使用聚合函数.

有没有人遇到过这个?是否有意义?

谢谢.

xpath lowercase selenium-ide uppercase

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

在Swift中追加字符以形成字符串的最快,最简洁的方法

我来自C#背景,其中System.String是不可变的,字符串连接相对昂贵(因为它需要重新分配字符串)我们知道使用该StringBuilder类型,因为它预先分配一个更大的缓冲区,其中单个字符(Char,16位值类型)和短字符串可以廉价连接而无需额外分配.

我正在将一些C#代码移植到Swift,它从[Bool]字节长度小于8位的子八位字节索引读取位数()(这是一种非常节省空间的文件格式).

我的C#代码做了这样的事情:

 StringBuilder sb = new StringBuilder( expectedCharacterCount );
 int idxInBits = 0;
 Boolean[] bits = ...;
 for(int i = 0; i < someLength; i++) {
     Char c = ReadNextCharacter( ref idxInBits, 6 ); // each character is 6 bits in this example
     sb.Append( c );
 }
Run Code Online (Sandbox Code Playgroud)

在Swift中,我假设NSMutableString相当于.NET StringBuilder,我发现这个QA关于附加单个字符(如何在Swift中将字符附加到字符串?)所以在Swift中我有这个:

var buffer: NSMutableString
for i in 0..<charCount {
    let charValue: Character = readNextCharacter( ... )
    buffer.AppendWithFormat("%c", charValue) …
Run Code Online (Sandbox Code Playgroud)

string swift

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

TypeScript 警告:导出、重新导出为、未找到(可能导出)

有了这个文件夹结构

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80components/\n|  \xe2\x94\x94\xe2\x94\x80Employee/\n|    \xe2\x94\x94\xe2\x94\x80employee.tsx\n|    \xe2\x94\x94\xe2\x94\x80index.ts\n|  \xe2\x94\x94\xe2\x94\x80app.tsx\n
Run Code Online (Sandbox Code Playgroud)\n

我正在导出类型和组件

\n

员工.tsx

\n
import React, { FC } from 'react'\n\nexport type EmployeeState = {\n  Name: string\n  EmployeeId: number\n}\n\ntype EmployeeProps = {\n  employees: EmployeeState[]\n}\n\nexport const Employee: FC<EmployeeProps> = ({ employees }) => {\n  return (\n    <ul>\n    {\n      employees.map((employee) => (\n        <li key={employee.EmployeeId}>\n          <h2>{employee.Name}</h2>\n        </li>\n      ))\n    }\n    </ul>\n  )\n} \n
Run Code Online (Sandbox Code Playgroud)\n

然后从index.ts文件Employee夹导出

\n

索引.ts

\n
export { EmployeeState, Employee } from './employee'\n
Run Code Online (Sandbox Code Playgroud)\n

当我尝试导入时app.tsx

\n

应用程序.tsx

\n
...\nimport …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

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

获得下一个最小的双号

作为单元测试的一部分,我需要测试一些边界条件.一种方法接受一个System.Double参数.

有没有办法获得下一个最小的双值?(即将尾数减1个单位值)?

我考虑使用,Double.Epsilon但这是不可靠的,因为它只是从零开始的最小增量,因此不适用于较大的值(即9999999999 - Double.Epsilon == 9999999999).

那么所需的算法或代码是什么:

NextSmallest(Double d) < d
Run Code Online (Sandbox Code Playgroud)

......总是如此.

c# double epsilon ieee-754 floating-point-precision

23
推荐指数
1
解决办法
2512
查看次数

在VS 2015.1中转换为Web应用程序

我正在运行Visual Studio 2015 Enterprise Update 1.

我创建了一个针对.NET Framework 4.5.2的空Visual Basic ASP.NET网站.我想将其转换为ASP.NET Web应用程序.

在解决方案资源管理器中的网站上下文菜单下,没有"转换为Web应用程序"菜单项,主菜单栏中的网站菜单下也没有任何内容:

在此输入图像描述

在此输入图像描述

功能何去何从?它是否已在Update 1中完全删除?

asp.net visual-studio visual-studio-2015

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

GitKraken不会让我从GitHub上的私人仓库中克隆

我已经尝试在github上克隆一个私人仓库(我有权访问)并得到这个消息:

在此输入图像描述

克隆失败

无法连接到'origin'.仔细检查您的远程网址,然后确保您有权在该遥控器上执行该操作,然后重试.

我运行Windows 10,我已经将kraken连接到github和ssh关键的工作,我可以推送和拉回购我公司的其他github回购公司就好了.我也能够从命令行克隆repo就好了.

gitkraken

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

javascript中的全局函数

我是js的新手并试图了解全局和私有功能.我理解全局变量和局部变量.但是,如果我有一个名为的HTML test.html和命名为2个js文件test1.jstest2.js.现在,我包括test1.jstest2.jstest.html并调用写在函数test2.js内部test1.jstest.html.

我在test2.js中编写的函数采用这种形式

function abc(){...}

function pqr(){...} etc.
Run Code Online (Sandbox Code Playgroud)

以上这些功能是全球的吗?如果是这样,我怎么能不使他们的全球和仍然可以访问他们在test1.jstest.html

因为我读过全局函数或全局变量是不对的?

javascript global function

16
推荐指数
5
解决办法
7万
查看次数

我应该在每个等待的操作上调用ConfigureAwait(false)

我读了这篇文章https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html - 但是我看到了一个矛盾:

我知道UI线程死锁的问题,因为UI线程阻塞等待异步操作完成,但同样的异步操作被同步到UI线程上下文 - 因此异步操作无法进入UI线程,所以UI线程不会停止等待.

文章告诉我们,解决方法是不阻止UI线程,否则你需要在ConfigureAwait(false) 任何地方使用:

您必须在阻塞代码调用的所有方法的传递闭包中使用每个等待,包括所有第三方和第二方代码.

然而,作者后来在文章中写道:

防止死锁
有两个最佳实践(我的介绍帖中都有)避免了这种情况:

  1. 在"库"异步方法中,ConfigureAwait(false)尽可能使用.
  2. 不要阻止任务; 一直使用async.

我在这里看到一个矛盾 - 在"不要这样做"部分他写道,必须在ConfigureAwait(false)任何地方使用都是阻止UI线程的结果 - 但在他的"最佳实践"列表中,他告诉我们要做的只是那:" ConfigureAwait(false)尽可能使用." - 虽然我认为"只要有可能"会排除第三方代码,但是在没有第三方代码的情况下,如果我阻止UI线程,结果是相同的.

至于我的具体问题,这是我在WPF MVVM项目中的当前代码:

MainWindowViewModel.cs

private async void ButtonClickEventHandler()
{
    WebServiceResponse response = await this.client.PushDinglebopThroughGrumbo();

    this.DisplayResponseInUI( response );
}
Run Code Online (Sandbox Code Playgroud)

WebServiceClient.cs

public class PlumbusWebServiceClient {

    private static readonly HttpClient _client = new HttpClient();

    public async Task<WebServiceResponse> PushDinglebopThroughGrumbo()
    {
        try
        {
            using( HttpResponseMessage response = await _client.GetAsync( ... ) )
            { …
Run Code Online (Sandbox Code Playgroud)

c# async-await

16
推荐指数
1
解决办法
3455
查看次数