V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  huzhikuizainali  ›  全部回复第 2 页 / 共 12 页
回复总数  226
1  2  3  4  5  6  7  8  9  10 ... 12  
@sanbuks 谢谢回复。请问你说的是第几版 P407 ?可否提供一下 ISBN 号
@exch4nge 感谢你提供的参考链接。基本上可以认为“就是这么规定的”是吧。如果是这样。那也就不需要进一步去“理解了”
按照他的第三条规定,那么 decltype(*p+1) 返回的就是 int 类型,对吧?
@lisxour 谢谢分享。请问你发的这个是“用户环境变量”吧? 我是在系统环境变量中更改的 path
@Dorian101 那你的环境变量的 path 值是什么?另外你的 dotnet 路径是?
337 天前
回复了 huzhikuizainali 创建的主题 C# 请问是否有 C# “官方”文档?
@forgottencoast 如果非官方人员可以修改文档,如何保障文档的准确性和一致性?
@thisrabbit 谢谢回复
我搜了一下链式调用。看到的例子是 对象.方法.方法 这种形式。但是上面代码是:方法.方法 的形式。所以我不确定是不是链式调用?
还有我在 https://learn.microsoft.com/zh-cn/docs/ 这里搜索链式调用,Method Chaining 。也搜不到什么有用信息。是不是搜索方法有问题?
2023-11-02 17:54:57 +08:00
回复了 huzhikuizainali 创建的主题 C# 请问这个访问控制声明是否有点多余?
@forgottencoast 谢谢解答。
我的面向对象主要是 matlab 中学的。matlab 中 Access=private 等同于 SetAccess=private & GetAccess=private .因此如果 SetAccess 和 GetAccess 分别设置了不同的访问限制就无需再对 Access 进行声明了。我觉得这从逻辑上来看很合理。

但是从上例 “3 、”来看 C#明显不允许这样。请问这是单纯的 C#语法规定?还是语言设计者有更深层的考虑。例如支持一些特殊的情况?
@codehz 谢谢回复。请教一下
1 、“ S 是 T 的子类型,但不是 T 的派生类型”,————这个用代码怎么实现?我的面向对象知识主要来自于 Matlab ,顺带看了一下 C++和 C#。从没遇到这种情况。

2 、“ 所以 java 的类继承是做了两件事
1. 复制父类的实现
2. 将自身标记为父类的子类型”

—————因为接口不存在任何“方法”的实现,只有方法的声明。所以不存在“复制父类的实现”这件事。所以当一个类 A 实现了接口 B ,并不能说 A 继承了 B ,我这么理解对么?


另外,无论是“类的继承”还是“接口继承”。这里面都没有对象什么事情啊。我完全可以不实例化任何一个对象就完成类的继承,或接口的实现。《设计模式》中为什么总说“对象”如何如何?我觉得这里完全没有对象什么事情啊!
@Nooooobycat 谢谢回复。
我在研究你的回复时,发现有几个问题我没有搞懂。
1 、截图中 CompareTo 模块中 MyClass me=(MyClass)obj;是什么意思?实例化一个 MyClass 对象。我过去看到的都是 MyClass me=new MyClass();

2 、if(this.TheValue<mc.TheValue) return -1; this 在这里指哪个对象?(书中说:this 关键字在类中使用,是对当前实例的引用。用途之一用于区分类的成员和局部变量或参数;----具体到这个模块谁是“当前实例?” public int TheValue; 这句可没有给出初始值。那么 this.TheValue 的值是多少呢?)
@Zhuzhuchenyan 谢谢谢谢回复
1.如你所说,确实如此
2.1 如果想实现“ A b=new B();这样的方式下无法调用派生类 B 的方法,只能调用基类 A 的方法”。—————要实现这个目的,完全可以将 B 类中相关方法设为私有,这样选择权在类的设计者手中,且更灵活。所以 C#允许 A b=new B()是否还有其他深意?特别是 c#中有 A 类 类型的变量 b 这种概念,在 Matlab 中 b 就是对象。不会叫作变量。我不知道这是翻译习惯的问题?还是二者概念确实不同?
@Jax6 谢谢回复
我看了一下 C#接口的介绍,结合了类 类型的变量的概念。产生了 两个派生问题:

1 、语法层面的问题 假设要实例化一个“纯”A 类的对象,C#中的语法往往是 A a= new A() ; , matlab 中只需要 a= A() ; 。我觉得 C#中 a 前面那个 A 很多余啊。难道不能在用户不特别声明的情况下默认 a= new A();就是实例化一个“纯” A 类的对象么?

2 、“非纯”A 类的情况。我在 matlab 中学过抽象类,也知道抽象类的好处和价值。但是在 Matlab 中只接触过如下思路,假设 A 是抽象类,B 和 C 是继承了 A 的具体类。然后 b= B(); c=C();就可以了,比如 B 类是法师 C 类是射手,那么就可以实现 b.attack c.attack 多态下的不同攻击方法。但是我无法理解 A b=new B() ; A c= new C(); 这个 A 在这里的作用。难道是告诉编译器对象 b 和对象 c 是 接口 A 下面的 子类的对象么?完全没必要啊,因为 public class B:A 已经阐述了这种继承关系。
其次 A b=new B(); 和 B b= new B(); 有什么不同呢?
2023-10-06 14:46:38 +08:00
回复了 huzhikuizainali 创建的主题 C# C#单元测试为什么不能过多使用 setup?
@doghappy 谢谢你的回复

关于“原文中“使用的对象是什么类型,人们不得不同时看文件里的两处代码。”。我觉得你的答案是最合理的。还有几处想向你请教

5 、从代码清单 2-2 来看,setup 初始化对象 m_analyzer 是放在代码最顶端。一般看代码是不会看不到最顶端的吧?你说”当你转到定义时,发现初始化是 null “ 。这个定义在代码中是哪一句?

6 、实际工作中从代码可读性,可维护性来看。是不是对象初始化的语句和对象使用的语句相隔不能太远?一般公司代码规范会对此有明确规定么?
2023-10-05 23:48:54 +08:00
回复了 huzhikuizainali 创建的主题 C# C#单元测试为什么不能过多使用 setup?
@doghappy 谢谢回复。
1 、如果你测试不得已引入了状态维护,你有可能在进行集成测试,--------作者后面也提到了这个观点,与你说法一致

2 、具体到代码清单 2-2 虽然有两个 test 标签,但是本质还是在做单元测试吧?只是针对输入文件不同的情况分成两段 test 。因为怕彼此状态关联。所以引入 setup 。我没学过 C#,不知道根据上下文猜测的对不对?

3 、一个是隐式的,一个是显式的-----------setup 不是系统自带的么?怎么反而是隐式调用?我有点看不懂。
4 、原文中“使用的对象是什么类型,人们不得不同时看文件里的两处代码。”--------这个意思你理解么?看文件里的两处代码这不是看代码的常态么?为什么 setup 的使用会加大这一困难?
2023-10-04 16:54:14 +08:00
回复了 huzhikuizainali 创建的主题 C# C#单元测试为什么不能过多使用 setup?
@Zhuzhuchenyan 谢谢回复
关于 setup 可读性的问题,你能猜出作者的意思么。他举的这个例子不一定很恰当。但是如果一个测试程序有几十个 test 标签呢?会有可读性的问题么?但我想真要这么多,可读性与有没有 setup 也没什么关系了吧?

TearDown 既然不是必须。代码清单中加入 TearDown 的目的是什么?想告诉读者什么信息?你能猜到么?
2023-10-03 22:31:43 +08:00
回复了 huzhikuizainali 创建的主题 编程 为什么要通过程序来测试程序?
@zhuisui 不知道我的理解对不对。单元测试主要检测 1+1 是否等于 2 的问题。也就是业务逻辑是否正确。 所以如果把单元测试要检测的问题看过集合 X 。那么 X 是 bug 这个集合的子集。bug 是包罗万象的。 比如你输入 章+1 这个可能会引起程序崩溃,但是这个问题不属于单元测试检测的问题。可以这么认为么?
2023-10-03 21:47:42 +08:00
回复了 huzhikuizainali 创建的主题 编程 为什么要通过程序来测试程序?
@Sketch 两段代码同时出错的概率是 0.25 。但是只有一段代码出错的概率是 0.25+0.25=0.5 。所以出 bug 的总概率变成 0.25+0.5=0.75 。不出 bug 的概率从原来一段代码的 0.5 变成了 1-0.75=0.25 。
.
@huruwo 有什么书籍推荐么?主要内容是针对反爬的。
@huruwo 现在的云打码平台不能解决滑块对齐问题么?
@villa2935 谢谢回复。
是只有考过试有成绩的学生才配登记到登记表里嘛?---------请教一下,这有什么影响么?后续问题先假设所有学生都参加了每一轮考试,且都被“历次考试排名统计表”收录。(但如果不是所有学生都参加每一轮考试呢?会怎样?)

“你不能用成绩表里的学号,当做登记表学号的外键。”--------那么针对以上问题应该用什么当作登记表的外键?
2023-08-07 14:57:46 +08:00
回复了 huzhikuizainali 创建的主题 C++ 关于"异常捕捉"(try catch)是否存在悖论?
@clooooo 谢谢你的详细的回复!
”1. 当某些错误状况难以完全避免时“ ------这是否可以理解为,我觉得这段代码不够健壮,可能会崩。但是它崩的可能情况过多。所以我前置的检测也许覆盖不到所有情况。因此用 try 来囊括它,让它无论怎么崩都能回到 catch 路径上去。我的理解正确么?

“try-catch 允许将错误处理与业务逻辑代码解耦,使主要逻辑更简洁清晰。”-------意思是如果代码作者在一段可能会崩的代码前面加上一堆前置验证程序,别人阅读代码时未必会很快理解这段前置验证代码的作用。但是用 try catch 包装一下。代码的读者会更容易理解你是在写“防崩”代码。增加可读性。我理解的对么?
1  2  3  4  5  6  7  8  9  10 ... 12  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2687 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 11:51 · PVG 19:51 · LAX 03:51 · JFK 06:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.