C# 记录类型: 记录子类之间的等价比较
给定父记录类型: public record Foo(string Value); 和两个记录子类和Bee我想知道是否可以在基类中实现Equals,因此作为foo,bar或bee的实例都被视为等于>基于Value(均使用Equals和==). 消化后我尝试了以下操作 https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/records public record Foo(string Value) { public virtual bool Equals(Foo? other) { return other != null && this.Value == other.Value; } public override int GetHashCod
10 2024-04-23
编程技术问答社区
在C#/.NET中记录方法调用到文件的最佳方式?
我正在尝试为某些代码编写一个可视化器,该代码生成了用于条形码和标签的图形.我想这样做的方式是通过记录将运行的方法+参数记录到文件中,因此我可以播放它们并在每个阶段查看产生的视觉输出(因此,一种视觉调试器可以帮助我通过测量中的测量来解决问题.图) 我可以访问这些方法,并且可以将我喜欢的任何东西都放入其中 - 但是我遇到了记录所调用方法签名和参数的最佳方法,尤其是因为其中很多是过载等. 有什么简单可以帮助我序列化/记录实际方法调用信息的信息吗? (为了回复它,因此我需要编程加载信息并调用它)也许与反射有关的东西? 注意:我是我正在从事的项目的实习生,我可能不允许将新的组件等引入构建中,因此我认为基于方面的需要库的事物已经存在. (与此同时,我不仅要问一个问.我应该弄清楚自己 - 这是我在午休时间在帮助我的主要任务中做的其他事情) ) 解决方案 从现有的参考器开始作为基础可能是一个好主意 - 例如来自 http://code.google.com/p/slimtun
8 2024-04-23
编程技术问答社区
从C#调用时将记录选项返回为空
是否可以将record option值从f#返回到c#作为null值?我想将一些逻辑封装在f#汇编中,并尽可能地隐藏"更自然到c#".这是一些综合示例: type Data = { DataField1: int; DataField2: string } 和返回C#的代码看起来像: type SomeFacade() = let data = Some { DataField1 = 1; DataField2 = "hello" } member x.GetData() = if Option.isSome data then Option.get data else null ,但不允许使用零值. 我可以尝试使用[]属性,但不能在记录类型上使用. 我可以使用Class而不是Record,但是在f#内部使用它会更复杂,因为大多数工作都应该在f#部分内完成.我喜欢通过使用with关键字复制另一个记录值来
28 2024-04-20
编程技术问答社区
C# 记录构造函数参数默认值为空的 IEnumerable
我正在转换此类 public class MyClass { public IEnumerable Strings { get; } public MyClass(IEnumerable? strings = null) { Strings = strings ?? new List(); } } 记录.目前我有: public record MyRecord(IEnumerable? strings = null); 但是,我找不到一种默认方法将IEnumerable初始化为空枚举的方法,因为它必须是一个编译时间常数.我尝试静态初始化一个可读数组,但相同的问题. 解决方案 由于IEnumerable是一种参考类型,因此唯一可能的默认参数是null.您绝对没有其他东西可以坚持.但!您 can 在明确声明为"长形"自动属性的初始化时,
18 2024-04-17
编程技术问答社区
是否有可能限制一种只针对记录的方法?
让我们假设我有几种不同的record types,具有公共接口,如下: record Rec1( string Tag ) : IFoo; record Rec2( int Num, string Tag ) : IFoo; record Rec3( bool Flag ) : IFoo { public string Tag { get; init; } public double Value { get; init; } } // ... others ... interface IFoo { string Tag { get; } } 我的目标是编写一个函数以通过记录克隆更新标签属性. 现在,如果已知类型,我可以写这样的东西: private Rec2 Update(Rec2 rec, string tag) { return rec wit
14 2024-04-16
编程技术问答社区
是否可以使用私有构造函数创建C#记录?
你好, 我正在尝试在C#中重建discriminated union type 我总是用这样的类创建它们: public abstract class Result { private Result() { } public sealed class Ok : Result { public Ok(object result) // don´t worry about object - it´s a sample => Result = result; public object Result { get; } } public sealed class Error : Result { public Error(string message) => Message = message;
16 2024-04-14
编程技术问答社区
为C# 9的记录定制平等性检查
据我所知,记录实际上是按照您的对象为价值而不是参考驱动的方式实现自己的平等检查的类. 简而言之,对于像这样实现的record Foo:var foo = new Foo { Value = "foo" }和var bar = new Foo { Value = "foo" },即使它们具有不同的参考(ReferenceEquals(foo, bar) // False),foo == bar表达式也会导致True. 现在有了记录,即使文章发表在.NET博客中,它说: 如果您不喜欢默认的逐场比较行为 生成的等于覆盖,您可以自己写自己的. 当我尝试放置public override bool Equals,public override int GetHashCode或public static bool operator ==等时. struct对象. public sealed record SimpleVo : IEquatable {
14 2024-04-13
编程技术问答社区
如何定义B型中的A型和A型中的B型?
我有两种类型.一个类型A和一个类型. type typeA = record test1 : typeB; end; type typeB = record test2 : typeA; end; 编辑: 那不是我的设计.我将Cheader Files(访问DLL)转换为Delphi. edit2: " C ++结构是Afair类的另一个名称.而且一定有指针,而不是价值观. 是的,您是对的,这是一种指向类型的指针: 我确定了: test1 : ^typeB; 那会起作用吗? test1 : Pointer; edit3: C结构: /* DLPDFPAGE */ typedef struct dlpdfpage { CosObj Page; CosObj PrintSelect; ASFixedRect
14 2024-04-07
编程技术问答社区
在不降低音频质量的情况下将短阵列从音频记录转换为字节数组?
我正在使用Android音频记录类录制音频.录制为PCM 16bit,因此(我听说)最好让音频记录将数据写入一个简短的数组.但是,对于我要做的事情,我需要将短阵列转换为字节数组.我尝试了几种方法,但所有方法都以不同的方式降低了音频的质量. 我尝试了: byte[] bytes2 = new byte[shortsA.length * 2]; ByteBuffer.wrap(bytes2).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer().put(shortsA); 但是结果非常安静和波动. 我尝试的第二种方法是: byte[] MyShortToByte(short[] buffer) { int N = buffer.length; float f[] = new float[N]; float min = 0.0f; float max = 0.0f; for (int i=0; i
20 2024-04-05
编程技术问答社区
Java记录导航
再次需要您的宝贵帮助.我有以下代码,其中我正在为每个文件读取文件内容.每个文件都与个人员工有关.单击一个称为"显示员工记录"的按钮,我想在GUI中显示所有员工文件数据.但是,我希望所有它们都出现在MS Access中的下一个和上一个,而不是所有人出现在一个中?有任何想法吗.也许是代码? /*********************Calculate Staff Balance***************************/ public class calcBalanceListener implements ActionListener { public void actionPerformed(ActionEvent e) { FileReader fileReader = null; BufferedReader bufferedReader = null; try { File
12 2024-04-05
编程技术问答社区
从数据库中获取下一条记录到视图中
我的应用程序内有两个按钮,一个用于下一个按钮,一个用于上一条.我希望下一个按钮在数据库的内部获取下一个记录,并在视图中显示它,并在视图中显示上一个记录,以获取上一个记录并在视图中显示.我该如何调用下一个或上一个记录?我一直在寻找教程和内容,但没有找到.我有一个教程,请与我分享.谢谢你的帮助.我希望我有一些代码可以提供,但我真的不知道从哪里开始. 解决方案 我使用int从dbase中提取记录. 来自我的Contactview类 static long record = 1; public void getData() { DBase db = new DBase(this); db.open(); lastRecord = db.lRec(); firstRecord = db.fRec(); rRec = db.getRec(record); db.close(); } 然后我的查询来自我的dbase类
14 2024-04-05
编程技术问答社区
如何在浏览器中录制语音?
我需要用户在浏览器上记录他们的声音,然后自动将结果MP3上传到WebServer. 我认为用户按下大脂肪开始记录/停止记录按钮执行此操作. 这将在用户硬盘上保存文件. 然后,它将有效地压缩并自动ftp到网站. 是否可以使用ActiveX或Java进行此操作? 还是有可用的库? 该应用程序适用于可以在需要的情况下安装软件的用户,因此可以安装EXE或其他任何内容. 任何建议都最值得赞赏. 解决方案 理想的解决方案是getUserMedia,而流动api.不幸的是,目前在现代浏览器中没有得到很好的支持.截至2012年6月14日,唯一确认获得支持的唯一浏览器根据 caniuse.com 是Chrome 21 . noreferrer">其他人似乎正在从事可靠的实现. 直到本机支持到达之前,Flash可以访问并记录 audio 和视频. 其他解决方案 您可以使用Flash与客户端的麦克风进行交互,这将需要用户的许可.有关实施详细信息,请访问我的参
16 2024-04-03
编程技术问答社区
在没有抄本的情况下,在RecordEditor中编辑一个主机文件
您如何编辑 a(二进制EBCDIC) Mainframe rectorededitor cobol copybook. 您如何生成Java代码使用 注意:这是试图拆分a 问题给出有意义的答案,这是很广泛的 变成一系列简单的问答. 解决方案 尝试和 如果可能的话,使用COBOL copybook编辑二进制文件.这只能作为最后的度假胜地尝试!!!. 尝试获取 该文件的 COBOL Copybook (或某些字段布局文档)!!! 一些一般建议: 在记录中处理10/20个字段时,这是可行的,但如果记录中有成千上万的字段. 花点时间不要急于此过程.在继续前进之前,请尝试使每个步骤正确 最终升级到最新版本的 recordeditor (当前0.98.4) 此过程也适用于普通文本文件 rectoreditor布局向导 启动向导选择选项记录布局>>>布局向导. 文件结构屏幕 文件结构屏幕有3个目的: 获取文件结构 - 它可以是固定宽度,
26 2024-03-30
编程技术问答社区
如何使用Cobol抄本在RecordEditor中编辑二进制主机文件(pt1)。
如何编辑 recordeditor 在Windows或Linux PC上使用Cobol Copybook. 注意:这是一种试图拆分非常宽的问题成为一系列简单的问题和答案. 解决方案 在将COBOL Copybook加载到 Recordeditor 选择记录布局>>>加载COBOL COPYBOOC 菜单选项 在COBOL加载屏幕上输入 cobol copybook 和您的 Mainframe Data File . rectoreditor 将读取文件并尝试确定文件属性 是. 重要属性 拆分抄写本:使用 no split 单一记录类型文件 font (或charset/编码)您需要输入文件的适当编码. CP037(或IBM037)是US-EBCDIC,CP273(或(IBM273)是德国EBCDIC. COBOL方言 IBM大型机Cobol的大型机 文件结构这对应于大型机上的RECFM属性. 使用固定长度二进制 recfm = fb 使用大
30 2024-03-30
编程技术问答社区
帮助写一个批处理脚本来解析CSV文件并输出一个文本文件
我正在努力编写一个可以读取CSV文件的批处理脚本,例如 Name:, City:, Country: Mark, London, UK Ben, Paris, France Tom, Athens, Greece CSV文件中将有一个标题行.它应输出到下面的文本文件: Name:Mark City:London Country:UK Name:Ben City:Paris Country:France Name:Tom City:Athens Country:Greece 磁场分离器(:)在上面的输出中有望在标题行本身中提供.因此,我需要做的就是将字段标题及其价值加成. 此CSV文件中的列数未固定,因此脚本不应限制为3个令牌.请帮助! 解决方案 @ECHO OFF IF "%~1"=="" GOTO :EOF SET "filename=%~1" SET fcount=0 SET linenum=0 FOR /F "usebackq tokens=1
8 2024-03-29
编程技术问答社区
我如何在后台开始录制iOS音频会话?
我试图启动kAudioSessionCategory_RecordAudio在我的应用程序在后台醒来但不前列之后(就像在大量位置更改中,我在商店中看到其他应用程序这样做,所以我知道这是可能的) .但是,每当我尝试像这样启动音频会话时 CheckError(AudioQueueStart(queue, NULL), "AudioQueueStart failed"); 我得到此错误: Error: AudioQueueStart failed (-12985) 所以我对此进行了阅读,但是只有建议是将音频会话设置为Active AudioSessionSetActive(YES),但这也会因'!cat'错误而失败.显然,您可以尝试切换音频会话的活动状态,但这对我不起作用. i具有音频背景模式plist标志集并在我的应用程序是最前沿的情况下启动音频会话,然后切换到另一个应用程序作品(显示红色栏显示其正在录制).它只是启动音频会话,而应用程序不是最前沿的问题. 有
22 2024-03-27
编程技术问答社区
Avro Schema。如何同时设置类型为 "记录 "和 "空"?
我需要将"记录"类型与架构中的空类型混合. "name":"specShape", "type":{ "type":"record", "name":"noSpecShape", "fields":[ { "name":"bpSsc", "type":"null", "default":null, "doc":"SampleValue: null" },... 例如,对于某些数据,可能为null. 所以如果我将类型设置为 "name":"specShape", "type":{ **"type":["record", "null"],*
14 2024-03-21
编程技术问答社区
嵌套Avro模式
根据这个问题嵌套记录模式的正确方法如下: { "name": "person", "type": "record", "fields": [ {"name": "firstname", "type": "string"}, {"name": "lastname", "type": "string"}, { "name": "address", "type": { "type" : "record", "name" : "AddressUSRecord", "fields" : [ {"name": "streetaddress", "type": "string"},
30 2024-03-21
编程技术问答社区
iOS-在Objective c中记录电话时的声音
可以在电话时记录用户声音的应用程序吗? 我搜索了它,而在打电话打电话时,Avoundation框架似乎停止录制.我不想记录整个通话,我只是对记录iPhone的用户所说的内容感兴趣. 我知道这种可能性可能是一种安全风险,但是对于面试来说是很好的. 如果没有我想要的可能性,我必须创建自己的VoIP连接,然后我可以记录下来,我是对的吗? 解决方案 Apple没有直接的方法或API来达到电话时录制语音的需求. AVAudioRecorder也不支持它.因为一旦呼叫开始,它将停止. 但是,有一些工作,例如Hook AudioUnitProcess,以访问电话的音频流并将其保存为M4A.这将在没有越狱的情况下工作,但不确定这将被Apple App Store评论团队接受. 有关围绕检查的更多信息 如此接受的答案. 还创建自己的VoIP连接方法在电话中录制. 其他解决方案 有赛迪亚的调整能够做到这一点.例如CallRecorder.
8 2024-03-21
编程技术问答社区
错误 Domain=AVFoundationErrorDomain Code=-11814 "无法记录"
它一直给我带来错误: 错误域= avFoundationRordomain code = -11814"无法记录" 我不确定问题是什么?拍摄图片后,我试图在计数器到达1时正确记录声音. static int counter; //counter will always be zero it think unless it is assigned. if (counter == 0){ dispatch_async([self sessionQueue], ^{ // Update the orientation on the still image output video connection before capturing. [[[self stillImageOutput] connectionWithMediaType:AVMediaTypeVideo] setVideoOrientation:[[(AVCaptureVideoPrevi
10 2024-03-21
编程技术问答社区