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
|
工作项和工作线程(线程池术语。工作项是指要由一个线程池线程调用的方法,代表线程实际要做的工作;处理工作项的线程称为工作线程。工作项被放到一个队列中,工作者线程将工作项从队列中取出并处理)
|