杨帆

杨帆 查看完整档案

杭州编辑  |  填写毕业院校  |  填写所在公司/组织 zzzzzzzzzzzzz.com 编辑
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 该用户太懒什么也没留下

个人动态

杨帆 关注了用户 · 10月27日

Java3y @java_3y

微信搜「Java3y」白嫖原创电子书和思维导图🔥

已经有8756个初学者都下载了!!🔥三歪把【大厂面试知识点】、【简历模板】、【原创文章】全部整理成电子书,共有1263页!点击下方链接领取。

https://github.com/ZhongFuChe...

关注 4068

杨帆 关注了专栏 · 10月27日

Java知识点大全

Java3y原创技术文章

关注 2753

杨帆 提出了问题 · 10月23日

直接复制aspx页面出现各种错误?

比如有一个abc.aspx(包含.cs及designer.cs),我直接复制了这个文件,并粘贴在同目录下,然后重命名为abc1.aspx,并修改了aspx页面中的CodeBehind,Inherits和cs文件中的class名。

按理说不会出现问题,但实际开发过程中就出现各种奇奇怪怪的错误,我遇到的问题及我解决过程如下:
1、一个runat sever的input报出id虽然在field中,但是与UI组件不兼容。(检查designer.cs的确类型字段都是是对应的)最终重启VS解决。
2、virtual svn for vs 2019无法检测到直接复制的文件副本abc1.aspx的三个文件。最终把文件删除,重新建文件,直接复制代码才解决。

感觉很是奇怪。所以请教一下大家。

关注 1 回答 0

杨帆 提出了问题 · 10月3日

antd中selectedRowKeys的神奇现象?

背景:
点击一个清空勾选按钮,清空已勾选项。

描述:
我自己会出现无法勾选出来的情况,我又捣鼓不出来,于是就在github上去提了issue,然后管理员"偏右"给我解决了。

代码:
我之前的失效代码:codesandbox演示
管理给的有效代码:codesandbox演示

修改处:
他跟我的区别就是rowSelection的写法不同,他把我原项目46行的selectedRowKeys拿出来放在了Table中的rowSelection属性中(他代码的77行)。
我的代码:rowSelection={{ ...this.rowSelection }}
他的代码:

rowSelection={{

...this.rowSelection,

selectedRowKeys: this.state.selectedRowKeys

}}

问题:
为什么我这样的代码会无法勾选,这样的代码问题在哪里?

补充:
github上原issue地址
antd table的api地址

关注 2 回答 1

杨帆 关注了用户 · 9月29日

然后去远足 @rhqyz

如果你觉得我说的不错,请点赞。

如果我解决了你的疑惑,请采纳。

尊重他人劳动成果,拒绝伸手党。

P.S. 其实我啥也不会 ^_^

关注 126

杨帆 发布了文章 · 9月29日

【翻译】c#中object,var与dynamic的区别

原文链接:
Difference Between Object and Dynamic Keyword in C#
Difference between var and dynamic in C#


篇一(dynamic与object的区别)

我们经常看到很多C#开发者并不能区分object与dynamic变量。我最近也尝试在网上找相关的教程和文章,不过还是没有找到比较好的解释。这篇文章将梳理object与dynamic区别的关键点。

总的来说,dynamic与object都不进行编译时类型检查(compile-time type checks),只有在运行时才会对变量类型进行检查,同时,dynamic和object修饰的变量都能存储任意数据类型。object是C# 1.0引入的,而dynamic是C# 4.0引入的。稍后我会讲一下为什么要引入dynamic。(明明object已经存在了,为什么还要引入dynamic?)

下面一些要点解释了两者的主要区别

区别一

Object: 对于object,编译器所给的提示信息较少。它不是编译器安全的。
例子:
image
ps: 你在对object取值/赋值时,每次都必须要显式转换为自己想要的数据类型。
object a = "Rohatash Kumar";
string a1 = a.ToString();

Dynamic: 编译器不显示任何提示信息。
用法:
dynamic a = "Rohatash Kumar";
string a1 = a;

区别二

Object: C# 1.0引入
Dynamic: C# 4.0引入

区别三

Object: 在使用object时,你必须将object转换为原始数据类型才能进行预期操作。正如区别一所示,下面是错误示范

object a = "Rohatash Kumar";
string a1 = a;

因此你必须每次都要进行显式转换
Dynamic: 不需要进行显示转换,但需要知道它内部的属性和方法。(但在点操作的时候,编译器不会提示)

区别四

Object: 如果此前没有转换为合适的数据类型(即错误的类型转换),编译器会在运行时抛出错误。即编译的时候不会报错,而在运行(调用)的时候就会报错。
例子
String a = "Rohatash Kumar";
object a1 = a;
int b = (int)a1;
image
ps:上面的a为string类型;a1为object类型,保存着a的副本。因此不能将a1显示转换为int类型。

Dynamic: dynamic不会报错,因为编译器保存着dynamic变量的所有信息。

dynamic与object总结:
Object 在我们不知道数据类型时很有用。 Dynamic 更多是用在反射,支持动态语言,COM对象调用以及获取LINQ的查询结果。

篇二(var与dynamic的区别)

var是C# 3.0引入的(基于 .NET 3.5),dynamic是C# 4.0。
var声明的变量都是静态类型,dynamic是动态类型。dynamic的引入是为了支持像ruby,python这样的动态语言。

##### 对照表

vardynamic
C# 3.0引入C# 4.0引入
静态类型 – 在编译的时候就确定了类型动态类型 – 在运行时才确定变量类型
需要 在定义时完成初始化。 例如: var str="I am a string";str这个变量会被编译器当作string类型。需要 在定义时初始化。 例如,以下代码没有任何问题: dynamic str;str="I am a string";str=2;
编译时捕获错误 因为编译器在编译的时候就知道了它的属性,类型和方法。运行时才会捕获错误 因为编译器在运行的时候才知道其属性,类型及方法。
Visual Studio会显示补全提示(intellisense) 因为对于编译器而言,变量的类型是确定的/知道的。没有智能提示 因为只有运行时才能知道其类型,属性及方法。
例如, var obj1;抛出编译错误 因为变量没有被初始化,而编译器在编译时需要根据它的值推断出类型。dynamic obj1;则编译成功
如, var obj1=1;编译没有问题,而再加上下面这句 var obj1=” I am a string”;就会报错 因为obj1的数据类型已经在第一句赋值时就确定了,也就是System.Int32(数字1所对应的数据类型) 而第二句把string类型的值赋给Int32自然就违反类型安全了。(一般而言,不同类型不能直接赋值)又如, dynamic obj1=1;没有问题,再加上dynamic obj1=" I am a string";还是没有问题 因为编译器首先将obj1指定为Int32类型(运行时指定),在第二句调用时又将obj1重新指定为string。代码完美执行,不会报错。
查看原文

赞 0 收藏 0 评论 0

杨帆 回答了问题 · 9月26日

antd中无法手动设置select选中值?

我大概找到了问题,当使用了Form.Item并指定了name属性时,就变成了受控组件。设置值要在Form上做,Form.Item或其包裹的元素上的值的设置会被忽略
图片.png

关注 1 回答 1

杨帆 提出了问题 · 9月26日

NET CORE 3.1 webapi中能不能使用filter来拦截cookies?

之前在MVC中,我使用using Microsoft.AspNetCore.Mvc.Filters这个程序集下的ActionFilterAttribute可以通过ActionExecutingContext.HttpRequest.Request.Cookies获取到cookie。

而在使用webapi时,程序集和上下文都不再是MVC中的了,而是using System.Web.Http.Filters这个程序集,和HttpActionContext这个上下文(这个上下文与之前的变化很大,没有找到如何获取Cookies)

请问在net core 3.1 webapi中如何获取到cookies?

关注 1 回答 1

杨帆 提出了问题 · 9月26日

antd中无法手动设置select选中值?

在我收到一条其他组件处理好的数据后,我想把它的值直接设置为一个Option,并且自动选中它。
我应该如何操作?

这里是沙盒地址:https://codesandbox.io/s/runtime-violet-0st76?file=/src/index.js

(我试过在Form.Item上设置defaultValue/value,以及在select上设置value,不过都失效了)

万分感谢!

关注 1 回答 1

杨帆 回答了问题 · 9月25日

antd treeselect异步加载数据不能正常显示

记录一下这个坑!
遇到这种数据好像正常,但就是不显示的,除了检查字段名还应该检查数据,保证每条数据id是唯一的。(这里是treeDataSimpleMode模式下)不同模式唯一性字段要求不一样。具体参考文档
图片.png
还有就是treeDataSimpleMode可以设为object,来自定义与id,Pid,rootId对应的数据字段名。

关注 2 回答 2

认证与成就

  • 获得 6 次点赞
  • 获得 8 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 8 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 3月22日
个人主页被 288 人浏览