小编Gha*_*san的帖子

TempData keep()vs peek()

keep()和peek()有什么区别?

MSDN说:

  • 保持(): marks the specified key in the dictionary for retention.
  • 窥视(): returns an object that contains the element that is associated with the specified key, without marking the key for deletion.

我无法得到真正的不同之处,难道他们都没有为另一个请求保留价值吗?

asp.net-mvc tempdata

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

在MinGW中静态链接库

假设我有三个C源文件.前两个是LIB(lib*.a?),第三个是使用它们的应用程序.

第一个是(re.c):

int re(int i) {
    return i;
}
Run Code Online (Sandbox Code Playgroud)

第二个是(test.c):

int re(int); // Depends on re.c

int test(int i) {
    return re(i);
}
Run Code Online (Sandbox Code Playgroud)

第三个是(main.c):

#include<stdio.h>

int test(int); // Uses test.c

int main(void) {

    printf("%d\n",test(0));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在,我如何以这样的方式创建前两个LIB,以便稍后将它们与主应用程序静态链接?

我知道如何创建DLL并在我的应用程序中动态链接它们,例如:

cc -o re.dll re.c -shared -Wl, - out-implib = libre.a(for re.c)

cc -o test.dll test.c -L.-lre -shared -Wl, - out-implib = libtest.a(对于test.c)

cc -o main.exe main.c -L.-lre -ltest


那么如何在MinGW中创建可执行二进制文件中静态链接的等效LIB,以及如何链接它们?

显然,在Windows下:)

mingw static-libraries

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

具有本机库依赖的 .NET Core 项目

我正在 .NET Core 中编写一个应用程序,该应用程序依赖于使用[DllImport]. 我有适用于 win-x64、win-x86 和 linux-x64 的本地编译库工件。

我的项目结构是这样的:

MyApp
|--Main.cs
|--runtimes
   |--win-x86
      |--native
         |--somelibrary.dll
   |--win-x64
      |--native
         |--somelibrary.dll
   |--linux-x64
      |--native
         |--libsomelibrary.so
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我得到了 DLL not found 异常。

我曾尝试在此处使用 MSBuild 目标解决方案,但这仅dll在编译时将一个复制到主输出文件夹。但是,我希望输出以与上面的 runtimes 文件夹相同的结构在输出文件夹中包含所有三个本机库,并将兼容本机库的选择留给 .NET Core 运行时主机。

因此,如果用户在 Windows x86 中运行该应用程序,它将使用 win-x86,依此类推。

我注意到,当我从 NuGet引用像SkiaSharp这样的原生包装器时,它实际上会很好地集成到我的应用程序中,并将包含运行时文件夹结构中的所有资产,以便在运行时在多个环境中工作。我怎样才能做到这一点?

编辑:

我最终为本地库绑定创建了一个 nuget 包,并在我的其他项目中引用了 nuget。

cross-platform native .net-core

7
推荐指数
1
解决办法
2204
查看次数

"这个"如何在关闭中起作用?

我得到了这个文件说这里有一个关闭:

function addHandler(){
    document.getElementById('el').onclick = function(){
        this.style.backgroundColor = 'red';
    };
}
Run Code Online (Sandbox Code Playgroud)

虽然此代码删除了闭包:

function addHandler() {
    var clickHandler = function() {
        this.style.backgroundColor = 'red';
    };
    (function() {
        var el = document.getElementById('el');
        el.onclick = clickHandler;
    })();
}
Run Code Online (Sandbox Code Playgroud)

我看不出第二个如何解决关闭问题.为什么代码不会el.onclick = clickHandler创建一个闭包?clickHandlerthis必须与满足el.

javascript

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

为什么1em比默认字体大小短?

我正在做一些实验,然后我遇到了这个问题.我坐在一个div高度1em,我期望div包含文本的整个高度,但它没有.1em是我的浏览器16px.

当我没有指定div高度时,它成功地包含了文本的整个高度,并且在检查时,它变成了高度19px.

是我对em错误的理解,因为我认为它应该代表浏览器的默认字体高度.

div {
  margin: 0;
  padding: 0;
}
.first {
  height: 1em;
  background: green;
}
.second {
  background: orange;
}
Run Code Online (Sandbox Code Playgroud)
<div class="first">سلامًا Say I Wantأًّ</div>
<br />
<div class="second">سلامًا Say I Wantأًّ</div>
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/9t43kyu2/1/

css em

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

C - 限制结构范围

我在.c文件中有这个结构:

struct entry {
    int position;
    int length;
    struct entry *node;
};
Run Code Online (Sandbox Code Playgroud)

现在,我如何将此结构布局的范围限制为主机文件,以便在另一个文件中使用相同名称的新结构布局时,我不会收到"重新定义"错误?

我尝试在struct之前使用static,但似乎没用(我也没有意义).顺便说一下,这个问题对我来说似乎没有用,因为我在链接文件中复制stuct条目时会遇到"重新定义"错误(使用MinGW).

---编辑---
对于那些想要了解更多的人:这里这里.

c struct scope

5
推荐指数
1
解决办法
1914
查看次数

在类图中显示访问级别

我正在为某个软件创建一个类图.现在,我确定了重要的类并将它们联系起来,它们很好.

问题是我有两个不同的类与另一个相同的类关联,但具有不同的访问级别.例如,我正在AdminClerk班级相关的Video班级.在Clerk将只能查看,同时Admin可以查看和编辑.我可以在类图中显示这种区别吗?

oop uml class-diagram

5
推荐指数
1
解决办法
338
查看次数

Xamarin.Forms 中的元素未扩展

使用StartAndExpandorEndAndExpand似乎实际上并没有扩展里面的元素StackLayout。即使有更多可用空间,如蓝色区域所示。只有FillAndExpand有效。

这是代码:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             xmlns:local="clr-namespace:App6"
             x:Class="App6.MainPage"
             ios:Page.UseSafeArea="True">

    <StackLayout BackgroundColor="Blue"
                 HeightRequest="100"
                 Orientation="Horizontal"
                 Spacing="0"
                 VerticalOptions="Start">
        <Label BackgroundColor="Red"
               HorizontalOptions="Start"
               Text="Hi" />
        <StackLayout BackgroundColor="Salmon"
                     HorizontalOptions="EndAndExpand"
                     Orientation="Vertical">
            <BoxView BackgroundColor="Red"
                     HeightRequest="30"
                     HorizontalOptions="End"
                     VerticalOptions="Center"
                     WidthRequest="30" />
        </StackLayout>
    </StackLayout>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

在此处输入图片说明

最重要的结果是当FillAndExpand用于 child 时StackLayout,其次是EndAndExpandwhich 不扩展,最后是StartAndExpand, which 也不会扩展。

如果父元素有更多空间,不应该扩展元素吗?如果是的话,为什么那么StartAndExpandEndAndExpand不工作?

注意:这仅在 Android 上使用 Xamarin.Forms 版本 3.4.0.1008975 进行了测试。

android xamarin.forms

5
推荐指数
1
解决办法
3476
查看次数

Lambda 参数名称(有时)与本地名称冲突

有两个项目,一个是面向 .NET Standard 2.0 的库,另一个是面向 .NET Core 2.2 的控制台应用程序。

现在这段代码适用于 .NET Standard 2.0 库,但不适用于 .NET Core 2.2。

for (int i = 0; i < 1; i++) {
    var y = new int[1].First(i => i == 0); // Conflict i name error here in .NET Core 2.2.
    Console.WriteLine("Hello " + y);
}
Run Code Online (Sandbox Code Playgroud)

从这个问题中了解到,简单的名称不应具有不同的含义,因此,即使 .NET Standard 2.0 库也应该给出错误,但事实并非如此。为什么会出现这种不一致?

我尝试过 dotnet fiddle,它似乎适用于 .NET Core 3.1 和 Roslyn 3.4,但不适用于 .NET Framework 4.7.2,这更令人困惑。这里发生了什么?

c# compiler-errors

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

使用指针订阅整数变量

可能重复:
在C数组中为什么这是真的?多维数组中的[5] == 5 [a]
C奇怪的数组语法

今天我遇到了这个博客.最吸引我的是这个:

int i;
i["]<i;++i){--i;}"];
Run Code Online (Sandbox Code Playgroud)

好吧,我真的不知道数组下标中奇怪的"字符串常量"的目的是什么,但我很困惑如何下标整数变量.所以我带来了这段代码:

#include <stdio.h>

int main(void) {
    int x = 10;

    printf("%d", x["\0"]); /* What is x["\0"]?! */

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

它使用MinGW和-Wall -ansi -pedantic编译时没有错误.然后该代码输出:105.

谁能解释这个?

编辑:我发现下标中必须有一个指针,否则我会得到编译时错误.

c arrays subscription

3
推荐指数
2
解决办法
1052
查看次数