本文目录
- property get与property let重名的话有什么作用
- 如何在android的源代码中添加persist属性
- VB中的function和property get有什么区别
- VB.net中property get和return语句
- android property 怎么单独编译
- C#/.NET Framework属性(property)get和set的本质是什么
- 请高手帮我用vb写一个Property Set过程和一个Property get过程,以便理解Property Set的使用
- VBA property get/let/set 可以带多个参数吗 还有怎么给它们赋值
- vb编程高手进 + 100
- VB Property Get/Let怎麼用
property get与property let重名的话有什么作用
准确地说这是定义属性过程propertyget是获取属性值,propertylet是给属性赋值以TextBox控件的Text属性为例,如果只有propertyget过程,将只能获取Text属性的内容,不能改变Text属性的内容,这样就表示一个只读属性。就是只能类似于a=TextBox.Text(读取)的用法,而不能有TextBox.Text=“abc“(赋值)的用法。如果只有propertylet过程,将只能给Text属性赋值,不能读取Text属性的内容,这样表示一个只写属性。就是只能类似于TextBox.Text=“abc“的用法,而不能有a=TextBox.Text的用法。一般get和let都是成对出现的,表现一个可读写属性,也有单独用get的,但没见过单独用let的。---------------------同名表示一个是写入属性,一个是读取属性如果不同名,那就是两个不同的属性了。
如何在android的源代码中添加persist属性
SystemProperties与Settings.System 1 使用 SystemProperties.get 如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。 如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。 在c++中就是对应JAVA的两个函数就是property_set, property_get,其实JAVA是通过JNI调用这两个函数的。 JAVA代码如下: import android.os.SystemProperties; SystemProperties.set(“persist.sys.language“, zone.getID()); String lang= SystemProperties.get(“persist.sys.language“); 获取方法: boolean fastfoodenable = SystemProperties.getBoolean(“persist.sys.fastfoodenable“, false); 设置方法: SystemProperties.set(“persist.sys.fastfoodenable“, “true“); C #include 《cutils/properties.h》 property_set(“persist.sys.language“, “zh“); property_get(“persist.sys.language“, propLang, “en“); 在adb shell可以通过以下的命名读取和修改 #getprop persist.sys.language #setprop persist.sys.language zh 创建与修改android属性用Systemproperties.set(name, value),获取android属性用Systemproperties.get(name),需要注意的是android属性的名称是有一定的格式要求的,如下: 前缀必须用system\core\init\property_service.c中定义的前缀 ,进行系统属性设置的程序也必须有system或root权限 如果我们要添加一个property:例如:silvan_liu 路径:system/core/rootdir/int.rc 在on post-fs-data 目录下 setprop persist.sys.silvan_liu 1//persist.sys 前缀名; 1为初始值 PS:不同前缀名权限不同,这里就不一一说明;还有为什么要加载on post-fs-data目录下,这和int.rc的语法有关 2 使用 Settings.System.putInt 这种方式会保存变量到Settings 数据库中,飞行模式等的开关就是用这种方式实现的。 首先需要定义一个系统属性值 路径:frameworks/base/core/java/android/provider/Settings.java public static final String VIVIEN_FASTFOOD= “hungry“; 1)获取方法如下: @Override public void onResume() { super.onResume(); if(Settings.System.getInt(getContentResolver(), Settings.System.VIVIEN_FASTFOOD,0)==1) { mYesORNo.setChecked(true); } else mYesORNo.setChecked(false); } 2)设置 if (mYesORNo.isChecked()) { Settings.System.putInt(getContentResolver(), Settings.System.VIVIEN_FASTFOOD, 1); } else { Settings.System.putInt(getContentResolver(), Settings.System.VIVIEN_FASTFOOD, 0); } 需要import android.provider.Settings; android源码开发中,常常要用到一些全局标志或者说变量,这时候我们可以给android系统添加自己想要的属性。 1.Settings.system 这种系统属性我们经常用到,例如飞行模式的开启和关闭,我们就是去改变Settings.system.AIRPLANE_MODE_ON 的值。 下面就介绍下我们怎样去定义一个系统属性。例如要添加一个属性名为“SILVAN_LIU” 路径:frameworks/base/core/java/android/provider/Settings.java public static final String SILVAN_LIU = “silvan_liu“; public static final String SETTINGS_TO_BACKUP ={ ~ +SILVAN_LIU ~ } 这样添加后,你就是可以通过Settings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0) 和Settings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0)去得到和设定SILVAN_LIU的属性值。 2.SystemProperties 创建与修改android属性用Systemproperties.set(name, value),获取android属性用Systemproperties.get(name),需要注意的是android属性的名称是有一定的格式要求的,如下: 前缀必须用system\core\init\property_service.c中定义的前缀 ,进行系统属性设置的程序也必须有system或root权限 如果我们要添加一个property:例如:silvan_liu 路径:system/core/rootdir/int.rc 在on post-fs-data 目录下 setprop persist.sys.silvan_liu 1//persist.sys 前缀名; 1为初始值 PS:不同前缀名权限不同,这里就不一一说明;还有为什么要加载on post-fs-data目录下,这和int.rc的语法有关。 以上是我实际项目中运用到的地方,可能认识的不够深刻,还需继续摸索。转载
VB中的function和property get有什么区别
function 定义函数,有返回值,可以定义任意类型的返回值,加public修饰时可以被外部调用,但是更多时被用在类的内部property get 是在自定义类中用来定义属性的,get定义了对外输出属性值的方法,他返回值类型须和相关联的属性一致,这个是对外的,由类外部访问关联的属性时调用。
VB.net中property get和return语句
亲爱的楼主,晚上好Property用于标识一个类成员为属性而不是方法.属性可以被获取,属性在被获以的时候利用get句柄返回其值.属性可以被赋值,这个过程是由set句柄完成的.这两个句柄可以不同时存在.如果只有get而没有set,那属性就是只读的.如果只有set而没有get,那属性就是只写的.希望对你有所帮助呢
android property 怎么单独编译
1. property应用例子Java: import Android.os.SystemProperties; SystemProperties.get(“persist.sys.usb.config“, “mtp,adb“); SystemProperties.getBoolean(“ro.adb.secure“, false); SystemProperties.set(“sys.usb.config“, config); SystemProperties.set需要有system权限,可以这么做 a. 在android.mk中,加上LOCAL_CERTIFICATE :=platform b. 在AndroidManifest.xml中,加上android:sharedUserId=“android.uid.system“Native C: #include 《cutils/properties.h》 LOCAL_SHARED_LIBRARIES := \ libcutils int property_set(const char *key, const char *value) int property_get(const char *key, char *value, const char *default_value) property_set(“service.adb.root“, “1“); property_get(“ro.debuggable“, value, ““)2. 设置属性的调用过程 SystemProperties.set in Java set frameworks/base/core/java/android/os/SystemProperties.java native_set(key, val) SystemProperties_set frameworks/base/core/jni/android_os_SystemProperties.cpp property_set /system/core/libcutils/properties.csetprop in .rc/.sh file setprop_main system/core/toolbox/setprop.c property_set /system/core/libcutils/properties.cproperty_set /system/core/libcutils/properties.c HAVE_LIBC_SYSTEM_PROPERTIES #define HAVE_LIBC_SYSTEM_PROPERTIES 1 in build/core/combo/include/arch/Linux-arm/AndroidConfig.h __system_property_set bionic/libc/bionic/system_properties.c send_prop_msg(PROP_MSG_SETPROP) handle_property_set_onfd(case PROP_MSG_SETPROP) system/core/init/property_service.c 检查权限 if “ctl.“ 开头 handle_control_message() system/core/init/init.c ctrl.start msg_start() 启动service ctrl.stop msg_stop() 停止service ctrl.restart msg_restart() 重启service else property_set() 如果能找到且以ro开头,就返回-1;能找到且不以ro开头调用 __system_property_update() 如果找不到则调用__system_property_add() 如果是“net.“开头,调用property_set(“net.change“, name) 如果以“persist.“开头,调用write_persistent_property(); property_changed(name, value); 除了“persist.“开头的property,关机后值会消失;以“persist.“开头的会保存在/data/property目录下一文件里,可以看write_persistent_property()3. 属性的初始值 从下面一些文件可以得到属性的初始值 void start_property_service(void) { ... load_properties_from_file(PROP_PATH_SYSTEM_BUILD); load_properties_from_file(PROP_PATH_SYSTEM_DEFAULT); load_override_properties(); /* Read persistent properties after all default values have been loaded. */ load_persistent_properties(); ... #define PROP_PATH_RAMDISK_DEFAULT “/default.prop“ #define PROP_PATH_SYSTEM_BUILD “/system/build.prop“ #define PROP_PATH_SYSTEM_DEFAULT “/system/default.prop“ #define PROP_PATH_LOCAL_OVERRIDE “/data/local.prop“4. 属性的权限 如果是serice, 调用check_control_perms()检查权限,可以看看control_perms 如果是其他属性,调用check_perms()检查权限,可以看看property_perms5. property_changed() system/core/init/init.c void property_changed(const char *name, const char *value) { if (property_triggers_enabled) queue_property_triggers(name, value); } queue_property_triggers() action_add_queue_tail(act) 设置完属性后,会调用on property相应的action, 可以看看init.rc
C#/.NET Framework属性(property)get和set的本质是什么
get //读取器 set //写入器当只有get时,此属性为只读,不能修改当只有set时,此属性为只只写,不能读取就是调取从元数据,关联两个方法,一个叫get_ItemName一个叫set_ItemName,你可以用Reflector或者用反射看到这两个方法编译的时候如 obj.ItemName = 3;实际上会是如下调用 obj.set_ItemName(3);
请高手帮我用vb写一个Property Set过程和一个Property get过程,以便理解Property Set的使用
Dim mvarWriteLogs As BooleanPrivate mvardbConObj As ADODB.Connection ’局部复制Public Property Let WriteLogs(ByRef vData As Boolean) mvarWriteLogs = vDataEnd PropertyPublic Property Get WriteLogs() As Boolean WriteLogs = mvarWriteLogsEnd PropertyPrivate Sub Class_Initialize() ’set对象需要初始化 Set mvardbConObj = New ADODB.Connection set dbConObj= New ADODB.ConnectionEnd SubPublic Property Set dbConObj(ByRef vData As ADODB.Connection) Set mvardbConObj = vDataEnd PropertyPublic Property Get dbConObj() As ADODB.Connection Set dbConObj = mvardbConObjEnd Property
VBA property get/let/set 可以带多个参数吗 还有怎么给它们赋值
您好,
这个可以实现,但是必须按照顺序写出参数,请看以下例子:
Person.cls
Option ExplicitPrivate mintAge As LongPublic Property Get Age(ByVal pName As String) As Integer Age = mintAgeEnd Property’ ---------------’ 1. pName 姓名.’ 2. intAge 年龄.’ ---------------Public Property Let Age(ByVal pName As String, ByVal intAge As Integer) mintAge = intAgeEnd Property
Module.bas
Option ExplicitSub Demo1() Dim per As New Person With per ’ 给姓名为张三的人赋上年龄 36 岁. .Age(“张三“) = 36 ’ 打印张三这个人的年龄. Debug.Print .Age(“张三“) End WithEnd SubSub Demo2() ’ 实例化两个人. Dim per(1) As New Person per(0).Age(“李四“) = 36 per(1).Age(“王五“) = 32 Debug.Print “李四的年龄是:“; per(0).Age(“李四“) Debug.Print “王五的年龄是:“; per(1).Age(“王五“)End Sub
关键注意点就是:
Get、Let 语句中添加的参数位置要对应,比如
Get 语句中的参数 pName 位于第一个,那么 Let 语句中的 pName 也要位于第一个。
PS:上面只是个简单的演示,希望你能够在实际应用中做到举一反三。
vb编程高手进 + 100
创建属性:public 属性名 as 类型属性过程:property get:返回属性值的一个函数,当用户读取属性值时执行property let:返回属性值的一个子程序当用户写入属性值时执行property set:property let的一个特例,用于变量的类型为对象的场合。属性过程一般成对出现,property let和property let表示该属性可读写,若只有porperty get过程,则该属性为只读属性,必须通过类方法编程才能改变。语法:public property get/let/set 属性()as 类型语句end property所以可这样:public p as stringproperty get p() as string语句end propertyproperty let p() as string语句end property
VB Property Get/Let怎麼用
这就是面向对象里面的属性的封装了,虽然通常我们认为VB是伪面向对象,但是封装这个概念还是有的get是得到值 let是给属性赋值
Private re_Text As StringPublic Property Let Text(ByVal NewValue As String) re_Text = NewValueEnd PropertyPublic Property Get Text() As String Text = re_TextEnd Property
re_Text这个属性是私有的,外界无法访问,代码给出外界访问属性Text 分别具有Get和Let
外界通过Text的Get可以读取到re_Text的值 同样通过Text的Let可以给re_Text赋值,如果只有Get 说明re_Text属性为只读,相反只有Let为只写不可读 外界用法 a.Text=“abc“ 执行完这句 a的私有成员re_Text的值已经是“abc”了,如果调试代码,你会发现这个过程中代码走进了Let里面(扩展:往往编程者会在Let代码段里做点其他同步的事,不如把sexid的let成1,那么同时sexname赋值成“男”实现性别编码和性别名称这两个属性时刻保持一致),同样
string b=a.Text 执行这个代码会走到Get代码段里