小编kof*_*fus的帖子

平等和多态

有两个不可变类Base和Derived(派生自Base)我想定义Equality这样

  • 平等总是多态的 - ((Base)derived1).Equals((Base)derived2)即将调用Derived.Equals

  • 运营商==!=将调用Equals,而不是ReferenceEquals(值相等)

我做了什么:

class Base: IEquatable<Base> {
  public readonly ImmutableType1 X;
  readonly ImmutableType2 Y;

  public Base(ImmutableType1 X, ImmutableType2 Y) { 
    this.X = X; 
    this.Y = Y; 
  }

  public override bool Equals(object obj) {
    if (object.ReferenceEquals(this, obj)) return true;
    if (obj is null || obj.GetType()!=this.GetType()) return false;

    return obj is Base o 
      && X.Equals(o.X) && Y.Equals(o.Y);
  }

  public override int GetHashCode() => HashCode.Combine(X, Y);

  // boilerplate
  public bool …
Run Code Online (Sandbox Code Playgroud)

c# c#-7.0 c#-7.3

24
推荐指数
3
解决办法
966
查看次数

在Internet Explorer 10中将文本保存在本地文件中

我需要能够将字符串保存到本地文件中.根据这里的代码,我得到了以下内容:

function saveTextAsFile(fileNameToSaveAs, textToWrite) {
var textFileAsBlob = new Blob([textToWrite], {
    type: 'text/plain'
});

var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";

if (true) { //window.webkitURL !== null) {
    // Chrome allows the link to be clicked
    // without actually adding it to the DOM.
    downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
} else {
    // Firefox requires the link to be added to the DOM
    // before it can be clicked.
    downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
    downloadLink.onclick = destroyClickedElement;
    downloadLink.style.display …
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer

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

Javascript - 将字符串作为text/html复制到剪贴板

有没有办法在javascript中将html字符串(即<b>xx<b>)复制到剪贴板中作为text/html,以便可以将其粘贴到例如带格式的gmail邮件中(即xx以粗体显示)

存在以文本(文本/纯文本)形式复制到剪贴板的解决方案,例如/sf/answers/2156722571/,但不是text/html

我需要一个非闪存,非jquery解决方案,至少可以在IE11 FF42和Chrome上运行.

理想情况下,我想在剪贴板中存储字符串的text和html版本,以便可以粘贴正确的版本,具体取决于目标是否支持html.

javascript clipboard

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

.NET Core Identity作为UI取消注册

我想取消.NET Core 2.1 + Identity中的'Register'选项作为UI应用程序.

我当然可以简单地从页面上删除按钮,问题是 - 这样安全吗?

如果不是我的其他选择?我应该使用脚手架来生成注册码然后在那里禁用它吗?

(同样适用于SetPassword等)

谢谢

c# asp.net-core-mvc .net-core asp.net-core

23
推荐指数
3
解决办法
2487
查看次数

“ IHostingEnvironment”已过时

我将项目更新为.NETCORE v3.0.0-preview3,现在得到:

Startup.cs(75,50,75,69):警告CS0618:'IHostingEnvironment'已过时:'此类型已过时,将在以后的版本中删除。推荐的替代方法是Microsoft.AspNetCore.Hosting.IWebHostEnvironment。

代码是:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
  if (env.IsDevelopment()) {
    ...
Run Code Online (Sandbox Code Playgroud)

现在正确的方法是什么?是否有任何文档/示例来显示?

.net-core asp.net-core asp.net-core-3.0

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

复制事件中的event.clipboardData.setData

我看过很多帖子但是找不到以下两个问题的明确答案,因为看起来标准和浏览器支持一直在不断变化.

  1. 根据标准,使用event.clipboardData.setData在'copy'事件处理程序中更改剪贴板是合法的操作吗?

  2. 最新版本的Chrome/FF/Safari/IE/Chrome iOS/Android/iPhone是否支持此功能?

谢谢!

html javascript w3c dom-events clipboarddata

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

Visual Studio 2017 Javascript linter突出显示错误

我正在使用VS17编辑客户端Javascript文件.

内置的intellisense和linter很棒,但是当linter发现错误时,我在错误下只得到一条绿色涂鸦线(使用黑暗主题).

这太容易错过了.我最终回到浏览器等只是为了经常发现语法错误.

如何获得更多关于linter错误的视觉提示.我想要左侧的东西,从头到尾标记整行的东西(如在崇高的linter中),或者其他使得超级可见的东西出错的东西.

visual-studio visual-studio-2017

16
推荐指数
2
解决办法
1142
查看次数

VS 2022不刷新错误列表警告

使用最新的 VS2022 预览版(但稳定版也有这个)C++ (VC17)

我经常得到的是我构建或重建,然后收到一些警告

  • 编辑器(绿色蠕动线)
  • 输出窗口
  • “警告”下的错误列表窗口

然后我在编辑器中修复了一个警告,但现在

  • 编辑器正常(绿色蠕动线消失)
  • 输出窗口正确不再显示警告
  • 错误列表/警告仍然显示它:(它现在似乎与编辑器不同步

我可以刷新错误列表中的警告的唯一方法是卸载+重新加载不可行的解决方案

有什么帮助吗?

  • 但即使是蓝色它也不会消失

visual-studio visual-studio-2022

15
推荐指数
1
解决办法
2540
查看次数

枚举转换的通用字符串

假设枚举:

public enum SysLogsAppTypes { None, MonitorService, MonitorTool };
Run Code Online (Sandbox Code Playgroud)

这是一个从ToString()表示转换回的函数enum:

private SysLogsAppTypes Str2SysLogsAppTypes(string str)  
{  
    try  
    {  
        SysLogsAppTypes res = (SysLogsAppTypes)Enum
                                       .Parse(typeof(SysLogsAppTypes), str);  
        if (!Enum.IsDefined(typeof(SysLogsAppTypes), res)) 
            return SysLogsAppTypes.None;  
        return res;  
    }  
    catch  
    {  
    return SysLogsAppTypes.None;  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

有没有办法制作这个通用?

我试过了:

private T Str2enum<T>(string str)   
{  
    try  
    {  
        T res = (T)Enum.Parse(typeof(T), str);  
        if (!Enum.IsDefined(typeof(T), res)) return T.None;  
        return res;  
    }  
    catch  
    {  
        return T.None;  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

但我得到:"T"是一个"类型参数",这是不是在给定的情况下有效
那里是T.None

有帮助吗?谢谢

c# generics

14
推荐指数
2
解决办法
5551
查看次数

c# 9.0 记录 - 反射和泛型约束

关于新记录功能的两个问题:

  1. 如何使用反射识别记录?看 [here][1] 也许有一种方法可以检测到,EqualityContract但我不确定这是否可行?

  2. 是否可以有一个泛型约束,即泛型类型是记录?也就是说,是否可以使用约束指示类型参数 T 必须是记录类?

c# c#-9.0 record-classes

14
推荐指数
4
解决办法
3521
查看次数