您当前的位置:首页 > 养生 > 内容

property_get(property get与property let重名的话有什么作用)

本文目录

  • 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代码段里


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 什么是云服务(云服务是什么意思吗怎样的)

下一篇: item是什么意思(Item 是什么意思)



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号