C#中的术语

作者:追风剑情 发布于:2021-8-22 10:10 分类:C#

CLR via C# 术语
术语 说明
(S)Byte 等同于“SByte 和 Byte",类似的还有(U)Int16,(U)Int32,(U)IntPtr等
AppDomain (保留原文)
Compute-Bound和I/O-Bound 计算限制和I/O限制(一个操作如果因为处理器和I/O的限制而不得不等待,就称为计算限制或I/O限制的操作)
Windows Store app Windows Store应用(Windows应用商店应用)
action method
操作方法
antecedent task和continuation task
前置任务和延续任务
arity 元数。在计算机编程中,一个函数或运算(操作)的元数是指函数获取的实参或操作数的个数。它源于像unary(arity=1)、binary(arity=2)、ternary(arity=3)这样的单词
asynchronously  synchronization 异步地同步(同步对资源的访问,但以异步方式进行,即不阻塞线程)
atomic 原子性(读或写都是一次完成,别的线程看不到中间状态,就说这种读写是原子性的)
attribute 特性
awaiter 等待者(调用GetAwaiter所返回的对象)
bit flag
位标志
block 阻塞(停下来等着)
callback
回调
calling thread
调用线程(发出调用的线程,也称主调线程)
capture 捕捉、捕获
cast
转型(强制类型转换)
compact
压缩(但些压缩非彼压缩,这里只是按照约定俗成的方式将compact翻译成“压缩”。不要以为“压缩”后内存会增多。相反,这里的“压缩”更接近于“碎片整理”。事实上,compact正确的意思是“变得更紧凑”。但事实上,从上个世纪80年开始,人们就把它看成是compress的近义词而翻译成“压缩”,以讹传讹至今)
contract 文档的翻译非常混乱,包括协定、协议、合约、约定和契约等
covariance和contravariance 协变和逆变(协变是指在要求使用一个类型的地方,能改为使用它的基类;逆变则是指在要求使用一个类型的地方,能改为使用它的派生类。C#用关键字 in 表示逆变量,用在输出位置。)
culture
语言文化(而不是文档中的“区域性”)
cyclical reference
循环引用
declarative 声明性
dispose
文档翻译成“释放”。但“dispose 一个对象”真正意思是“清理或处置对象中包装的资源(比如它的字段引用的对象),然后等着在一次垃圾回收之后回收该对象占用的托管内存(此时才释放)。”为避免误解,本书将dispose翻译成“清理”
entry 记录项(而不是“条目”、“入口”)
flush
文档翻译成“刷新”,本书保留原文。其实flush在技术文档中的意思和日常生活中一样,即“冲洗(到别处)”。
formatter 格式化器(文档翻译成“格式化程序”)
get accessor method get访问器方法(取值函数或getter)
guideline 设计规范
handler
处理程序。
helper method
辅助方法
host
寄宿(动词)或宿主(名词)
invoke和call
都翻译成“调用”,但两者是有区别的。执行一个所有信息都已知的方法时,用call比较恰当。但在需要先“唤出”某个东西来帮你调用一个信息不明的方法时,用invoke就比较恰当。阅读关于委托和反射的章节时,可以更好地体会两者的区别
literal 直接在代码中书写的值就是literal值,比如字符串值和数值(“hello”和123)。翻译成什么的都有,包括直接量、字面值、文字常量、常值(台译)等。但实际最容易理解的还是英文原文。
marshal
封送
metadata 元数据
mutex 互斥体
native method
本机方法(其实就是非托管方法)
native
本机(文档如此,个人更喜欢“原生”,比如原生类库、原生C/C++代码、原生堆。一切非托管的,就是native的)
operand
操作数(要操作/运算的目标)
operator 操作符(而不是文档中的“运算符”)
overload和override 重载和重写
preempt 抢占
primitive types
基元类型(文档如此,不是“基本类型”。可以在代码中使用的最简单的构造就称为“基元”,其他构造都是它们复合而成的)
provider
提供程序
raise an event
引发事件
recursion count和recursive lock 递归计数和递归锁(可重入的锁就是递归锁,重入的次数就是递归计数)
scalability 伸缩性(在少量时间里做更多工作的能力,就是所谓的“伸缩性”。作为一个伸缩性好的服务器,理论上应该CPU越多,一个耗时操作所需的时间就越短。通俗地说,在多个CPU之间并行执行,执行时间将根据CPU的数量成比例地缩短)
self-hosted 自寄宿(应用程序的进程自己容纳CLR,就是所谓的自寄宿)
semaphore
信号量
set accessor method
set访问器方法(赋值函数或setter)
side effect
副作用
singleton
单实例
spinning 自旋(线程不是阻塞,而是原地“打转”,浪费CPU时间。但在用于保护执行得非常快的代码区域时性能比较好)
string interning 字符串留用(而不是文档中的“字符串拘留”)
synchronous和asynchronous 同步和异步(同步意味着一个操作开始后必须等待它完成;异步则意味着不用等它完成,可以立即返回做其他事情。不要将“同步”理解成“同时”)
tap(点击),press and hold(长按), slide(滑动),swipe(轻扫),turn(转运),pinch(收缩)和stretch(拉伸) Windows 8 的各种触摸“手势”
throw an exception 抛出异常
unwind 一般翻译成“展开”,但这并不是一个很好的翻译。wind和unwind源于生活。把线缠到线圈上称为wind;从线圈上松开称为unwind。同样地,调用方法时压入栈帧,称为wind;方法执行完毕,弹出栈帧,称为unwind
volatile 易变(文档将volatile翻译成“可变”。其实它是“短暂存在”、“易变”的意思,因为可能有多个线程都对这种字段进行修改,本书采用“易变”)
work item和worker thread 工作项和工作线程(线程池术语。工作项是指要由一个线程池线程调用的方法,代表线程实际要做的工作;处理工作项的线程称为工作线程。工作项被放到一个队列中,工作者线程将工作项从队列中取出并处理)

标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号