
uses typeinfo;
procedure TForm1Button1Click(Sender: TObject);
var
c : TFieldType;
begin
c := ftString;
//根据enum得到字符串
showmessage(GetEnumName(Typeinfo(TFieldType),Ord(c)));
// 根据字符串得到枚举类型
c := TFieldType(GetEnumValue(Typeinfo(TFieldType),'ftInteger'));
showmessage(GetEnumName(Typeinfo(TFieldType),Ord(c)));
end;
C#中的get和set用法
get是用来取值的
set是用来赋值的
如:
namespace
MapClassLibraryModels
{
public
class
Class1
{
public
Class1()
{
}
private
string
type;
public
string
Type
{
get
{
return
type;
}
set
{
type
=
value;
}
}
}
}
首先是赋值
Class1
c1=new
Class1();
c1Type="String类型";
然后是取值
string
str=c1Type;
MessageBoxShow(strToString());
结果就会输出“String类型”
请问一下你想要的是这种效果吗?
c#的字段就是指私有域(变量)
class A
{
int i;
public int I
{
get{}
set{}
}
}
其中,i是字段,I是属性,
字段是属于一个类的,在类中定义(注意:是类中,而不是类中的某个方法或属性中)
在本类中可以用
this字段名访问
且本类中的所有属性、方法等都可以访问
也就是说它的作用域是整个类。
而局部变量是属于一个函数或语句块的
它的作用域是从定义开始,到离开语句块。
C#中的变量、字段、域、属性、属性过程
在C#中:
域: 表示与对象或类相关联的变量,修饰符不论是不是public。(与字段类似)
字段: 表示与对象或类相关联的变量。通常来讲修饰符是public的成员变量称为字段,而private更适合说是局部变量。(与域类似)
属性: 表示域或字段的自然扩展,使得在保证封装性的基础上实现了访问私有成员的便捷性。
域
域表示与对象或类相关联的变量,声明格式如下:
attributes field-modifiers type variable-declarators;
域的修饰符field-modifiers可以是:new、public、protected、internal、private、static、readonly。实际上,域相当于C++中的简单成员变量。在下面的代码中,类A包含了三个域:公有的X和Y,以及私有的z。
class A
{
public int x;
public string y;
private float z;
}
字段
字段是与对象或类相关联的变量。
当一个字段声明中含有static修饰符时,由该声明引入的字段为静态字段(static field)。它只标识了一个存储位置。不管创建了多少个类实例,静态字段都只会有一个副本。
当一个字段声明中不含有static修饰符时,由该声明引入的字段为实例字段(instance field)。类的每个实例都包含了该类的所有实例字段的一个单独副本。
在下面的示例中,Color类的每个实例都有r,g,b实例字段的不同副本,但是Black,White,Red,Green和Blue等静态字段只有一个副本:
public class Color
{
public static readonly Color Black = new Color(0, 0, 0);
public static readonly Color White = new Color(255, 255, 255);
public static readonly Color Red = new Color(255, 0, 0);
public static readonly Color Green = new Color(0, 255, 0);
public static readonly Color Blue = new Color(0, 0, 255);
private byte r, g, b;
public Color(byte r, byte g, byte b) {
thisr = r;
thisg = g;
thisb = b;
}
}
如示例所示,通过readonly修饰符声明只读字段。给readonly字段的赋值只能作为声明的组成部分出现,或者在同一类中的实例构造函数或静态构造函数中出现。
属性
为了类的封装性,一般是把字段设为Private, 把属性设为公有来 *** 作字段。
属性(property)是字段的自然扩展,两者都是具有关联类型的命名成员,而且访问字段和属性的语法是相同的。然而,属性与字段不同,不表示存储位置。相反,属性有访问器(accessor),这些访问器指定在它们的值被读取或写入时需执行的语句。
属性的声明类似于字段,不同之处在于属性的声明以定界符{}之间的get访问器和/或set访问器结束,而不是分号。同时包含get访问器和set访问器的属性称为读写属性(read-write property)。只具有get访问器的属性称为只读属性(read-only property)。只具有set访问器的属性称为只写属性(write-only property)。
get访问器相当于一个具有属性类型返回值的无参数方法。除了作为赋值的目标外,当在表达式中引用属性时,会调用该属性的get访问器以计算该属性的值。
set访问器相当于一个具有单个名为value的参数和无返回类型的方法。当一个属性作为赋值的目标,或者作为++或--运算符的 *** 作数被引用时,就会调用set访问器,所传递的自变量将提供新值。
List类声明了两个属性Count和Capacity,依次是只读和只写的。下面是使用这些属性的示例:
List names = new List();
namesCapacity = 100; //调用set访问器
int i = namesCount; //调用get访问器
int j = namesCapacity; //调用get访问器
与字段和方法类似,对于实例属性和静态属性,C#两者都支持。静态属性是声明中具有static修饰符,而实例属性则没有。
属性的访问器可以是虚拟的。当属性声明中包含virtual,abstract,override修饰符时,它们将运用到属性访问器。
来自MSDN中的内容:
属性与字段
属性与字段都可在对象中存储和检索信息。它们的相似性使得在给定情况下很难确定哪个是更好的编程选择。
在以下情况下使用属性过程:
1 需要控制设置或检索值的时间和方式时。
2 属性有定义完善的一组值需要进行验证时。
3 设置值导致对象的状态发生某些明显的变化(如 IsVisible 属性)。
4 设置属性会导致更改其他内部变量或其他属性的值时。
5必须先执行一组步骤,然后才能设置或检索属性时。
在以下情况下使用字段:
1 值为自验证类型时。例如,如果将 True 或 False 以外的值赋给 Boolean 变量,就会发生错误或自动数据转换。
2 在数据类型所支持范围内的任何值均有效时。Single 或 Double 类型的很多属性属于这种情况。
3 属性是 String 数据类型,且对于字符串的大小或值没有任何约束时。
Visual Basic中属性和变量的差异(在C#中应该也是一样的)
变量和属性都表示可以访问的值。但在存储和实现方面有所不同。
变量
变量 直接对应于内存位置。可以使用单个声明语句定义变量。变量可以是“局部变量”,在过程中定义且仅可用于该过程;它也可以是“成员变量”,在模块、类或结构中定义,但不在任何过程中定义。成员变量又称“字段”。
属性
属性 是在模块、类或结构中定义的数据元素。使用 Property 和 End Property 语句之间的代码块定义属性。此代码块包含一个 Get 过程t或一个 Set 过程,或两者都包含。这两个过程称为“属性过程”或“属性访问器”。除了检索或存储属性的值外,它们还可以执行自定义 *** 作,如更新访问计数器。
不同点
下表指出了变量和属性之间的一些重要差异。
差异点 变量 属性
声明 单个声明语句 代码块中的一系列语句
实现 单个存储位置 可执行代码(属性过程)
存储 直接与变量的值关联 通常包含内部存储;在属性的包含类或模块外部,这些内部存储不可用属性的值可能作为也可能不作为一个存储元素(见下(1))
存在可执行代码 无 至少必须有一个过程
读写访问权限 读/写或只读 读/写、只读或只写
自定义 *** 作 不可能 可以当作部分设置或检索属性值执行
注解:(1)和变量不同,属性的值可能不直接对应于单个存储项。为方便或安全起见,存储可能拆分为几块;也可能以加密格式存储值。在这些情况下,Get 过程将汇编这些块或解密存储值,然后 Set 过程会加密新值或将其拆分到构成存储的各个组成部分中。属性值可以是临时的,如一天中的某个时间,在这种情况下,每次访问此属性时,Get 过程将及时计算此属性。
类与模块之间的差异
类和模块之间的主要差异在于:类可以实例化为对象,而标准模块则不能。
2input[type=checkbox] / input[type=radio]
3input[type=color]
4input[type=date]
5input[type=file]
6input[type=number]
7input[type=password]
8input[type=range]
9input[type=search]
/ 去除圆角 /
input[type=search] { -webkit-appearance: none; }
/ 隐藏取消按钮 /
::-webkit-search-cancel-button { -webkit-appearance: none; }
/ 隐藏放大镜 /
::-webkit-search-results-button { -webkit-appearance: none; }
10input[type=text]
10<button>元素
11<keygen>元素
12<meter>元素
<meter>用做测量、评分等。Webkit下有如下伪元素可控:
::-webkit-meter-bar – 条条
::-webkit-meter-optimum-value – 得分好的时候那部分区域
::-webkit-meter-suboptimal-value – 分数凑合时候
::-webkit-meter-even-less-good-value – 分数糟糕时候区域状态
13<progress>元素
14<select>元素
15<textarea>元素::-webkit-resizer可以改变右下角的拉伸小标记的样式。
16表单验证信息
仅Webkit内核浏览器目前鸟之,改变验证提示时候bubble框的UI, 伪元素如下:
::-webkit-validation-bubble – 整个d出框区域
::-webkit-validation-bubble-arrow – d出框的尖角
::-webkit-validation-bubble-arrow-clipper - d出框尖角所在块状区域
::-webkit-validation-bubble-heading – 文字标题占据区域
::-webkit-validation-bubble-message – 文字提示的整个方形的信息框
::-webkit-validation-bubble-text-block – 文字所在block块区域
此处参考文章地址: >
目录
一、结构体详解
1 结构体定义
2 实例化结构体的7种方法
二、结构体方法
1 结构体的方法定义
2 结构体内自定义方法的引用
3 任意类型添加方法
三、嵌套、继承
1 匿名结构体
2 结构体中可以定义任意类型的字段
3 结构体嵌套结构体
4 结构体嵌套匿名结构体
5 结构体嵌套多个匿名结构体
6 结构体继承
四、结构体和JSON相互转换
1 结构体转化成json
2 json转化成结构体
3 结构体标签 tag
4 嵌套结构体和json的序列化反序列化
Golang 中没有“类”的概念,Golang 中的结构体和其他语言中的类有点相似。和其他面向对 象语言中的类相比,Golang 中的结构体具有更高的扩展性和灵活性。
Golang 中的基础数据类型可以表示一些事物的基本属性,但是当我们想表达一个事物的全 部或部分属性时,这时候再用单一的基本数据类型就无法满足需求了,Golang 提供了一种 自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体,英文名称 struct。 也就是我们可以通过 struct 来定义自己的类型了。
使用 type 和 struct 关键字来定义结构体,具体代码格式如下:
type 类型名 struct {
字段名 字段类型
字段名 字段类型 …
}
其中:
• 类型名:表示自定义结构体的名称,在同一个包内不能重复。
• 字段名:表示结构体字段名。结构体中的字段名必须唯一。
• 字段类型:表示结构体字段的具体类型。
在 go 语言中,没有类的概念但是可以给类型(结构体,自定义类型)定义方法。所谓方法 就是定义了接收者的函数。接收者的概念就类似于其他语言中的 this 或者 self。
方法的定义格式如下:
func (接收者变量 接收者类型) 方法名(参数列表) (返回参数) {
函数体
}
注意:想改变结构体内的值,必须先变成指针。
在 Go 语言中,接收者的类型可以是任何类型,不仅仅是结构体,任何类型都可以拥有方法。 举个例子,我们基于内置的 int 类型使用 type 关键字可以定义新的自定义类型,然后为我们 的自定义类型添加方法。
注意:匿名结构体中不允许出现多个重复的类型
注意:如果结构体里面有私有属性也就是小写定义的字段,则不会被json使用
以上就是关于DELPHI怎么获取SQL指定字段的字段类型全部的内容,包括:DELPHI怎么获取SQL指定字段的字段类型、c#中的get和set的用法,希望结合代码解释!、C#属性、字段、变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)