1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | Imports system.collections.generic Imports system.reflection Module example Public Function IsPropertyWritable(tT as Type, propertyName as string) as Boolean For Each prop as system.reflection.propertyinfo in tT.GetProperties(bindingflags.public OR bindingflags.NonPublic OR _ bindingflags.instance OR bindingflags.static) if prop.name = propertyname then return prop.canwrite End If Next Throw new exception("No property with the name'"+ propertyname +"' exist for class '"+ tT.Name) End Function Public Function IsPropertyWritable(of t) ( propertyname as String) as Boolean Dim tT as Type = gettype(t) return IsPropertyWritable(tT, propertyName) End function Public Function IsPropertyWritable(Obj as object, propertyname as String) as Boolean Dim tT as Type = obj.gettype return IsPropertyWritable(tT, propertyName) End function Public Sub Main() System.console.writeline( IsPropertyWritable(of a) ( "r")) System.console.writeline( IsPropertyWritable(of a) ( "norm")) System.console.writeline( IsPropertyWritable(new a, "norm")) System.console.writeline( IsPropertyWritable(new a, "r")) End Sub End Module Public class a Public Property norm As integer Get return 42 End get Set (value as integer) End set End property Public readonly property r as integer Get Return 42 End get End property End class |
SW1wb3J0cyBzeXN0ZW0uY29sbGVjdGlvbnMuZ2VuZXJpYwpJbXBvcnRzIHN5c3RlbS5yZWZsZWN0aW9uCgoKTW9kdWxlIGV4YW1wbGUgCgogICAgUHVibGljIEZ1bmN0aW9uIElzUHJvcGVydHlXcml0YWJsZSh0VCBhcyBUeXBlLCBwcm9wZXJ0eU5hbWUgYXMgc3RyaW5nKSBhcyBCb29sZWFuCiAgICAgICAgRm9yIEVhY2ggcHJvcCBhcyBzeXN0ZW0ucmVmbGVjdGlvbi5wcm9wZXJ0eWluZm8gaW4gIHRULkdldFByb3BlcnRpZXMoYmluZGluZ2ZsYWdzLnB1YmxpYyBPUiBiaW5kaW5nZmxhZ3MuTm9uUHVibGljIE9SIF8KICAgICAgICAgICAgICAgICAgICAgICAgYmluZGluZ2ZsYWdzLmluc3RhbmNlIE9SIGJpbmRpbmdmbGFncy5zdGF0aWMpCiAgICAgICAgICAKCSAgICAgaWYgcHJvcC5uYW1lID0gcHJvcGVydHluYW1lIHRoZW4KCSAgICAgICAgIHJldHVybiBwcm9wLmNhbndyaXRlCgkgICAgIEVuZCBJZgogICAgICAgICBOZXh0CiAgICAgICAgIFRocm93IG5ldyBleGNlcHRpb24oIk5vIHByb3BlcnR5IHdpdGggdGhlIG5hbWUnIisgcHJvcGVydHluYW1lICsiJyBleGlzdCBmb3IgY2xhc3MgJyIrIHRULk5hbWUpCiAgICBFbmQgRnVuY3Rpb24KIAoKICAgIFB1YmxpYyBGdW5jdGlvbiBJc1Byb3BlcnR5V3JpdGFibGUob2YgdCkgKCBwcm9wZXJ0eW5hbWUgYXMgU3RyaW5nKSBhcyBCb29sZWFuCglEaW0gdFQgYXMgVHlwZSAgPSBnZXR0eXBlKHQpCglyZXR1cm4gSXNQcm9wZXJ0eVdyaXRhYmxlKHRULCBwcm9wZXJ0eU5hbWUpCiAgICBFbmQgZnVuY3Rpb24KCiAgICBQdWJsaWMgRnVuY3Rpb24gSXNQcm9wZXJ0eVdyaXRhYmxlKE9iaiBhcyBvYmplY3QsIHByb3BlcnR5bmFtZSBhcyBTdHJpbmcpIGFzIEJvb2xlYW4KCURpbSB0VCBhcyBUeXBlICA9IG9iai5nZXR0eXBlCiAgICAgICAgcmV0dXJuIElzUHJvcGVydHlXcml0YWJsZSh0VCwgcHJvcGVydHlOYW1lKQogICAgRW5kIGZ1bmN0aW9uCgoKICAgIFB1YmxpYyBTdWIgTWFpbigpIAogICAgICAgU3lzdGVtLmNvbnNvbGUud3JpdGVsaW5lKCBJc1Byb3BlcnR5V3JpdGFibGUob2YgYSkgKCAiciIpKQogICAgICAgU3lzdGVtLmNvbnNvbGUud3JpdGVsaW5lKCBJc1Byb3BlcnR5V3JpdGFibGUob2YgYSkgKCAibm9ybSIpKQogICAgICAgU3lzdGVtLmNvbnNvbGUud3JpdGVsaW5lKCBJc1Byb3BlcnR5V3JpdGFibGUobmV3IGEsICJub3JtIikpCiAgICAgICBTeXN0ZW0uY29uc29sZS53cml0ZWxpbmUoIElzUHJvcGVydHlXcml0YWJsZShuZXcgYSwgInIiKSkKICAgICAgIAogICAgRW5kIFN1YgpFbmQgTW9kdWxlCgpQdWJsaWMgY2xhc3MgYQoKUHVibGljIFByb3BlcnR5IG5vcm0gQXMgaW50ZWdlcgpHZXQgCiAgIHJldHVybiA0MgpFbmQgZ2V0ClNldCAodmFsdWUgYXMgaW50ZWdlcikKRW5kIHNldApFbmQgcHJvcGVydHkKClB1YmxpYyByZWFkb25seSBwcm9wZXJ0eSByIGFzIGludGVnZXIKR2V0CiAgIFJldHVybiA0MgogRW5kIGdldApFbmQgcHJvcGVydHkKCkVuZCBjbGFzcwoKIA==
Visual Basic.Net Compiler version 0.0.0.5914 (Mono 2.4.2 - r) Copyright (C) 2004-2008 Rolf Bjarne Kvinge. All rights reserved. Assembly 'prog, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' saved successfully to '/home/japWoW/prog.exe'. Compilation successful Compilation took 00:00:01.0912130
-
upload with new input
-
result: Success time: 0.05s memory: 25592 kB returned value: 0
False True True False


