คำถามติดแท็ก properties

คุณสมบัติในภาษาการเขียนโปรแกรมเชิงวัตถุบางอย่างเป็นสมาชิกประเภทคลาสพิเศษซึ่งอยู่ตรงกลางระหว่างเขตข้อมูล (หรือสมาชิกข้อมูล) และวิธีการ คุณสมบัติเป็นแบบอ่านและเขียนเช่นเขตข้อมูล แต่คุณสมบัติการอ่านและการเขียนคือ (ปกติ) แปลเพื่อรับและตั้งค่าการเรียกเมธอด

9
เป็นไปได้หรือไม่ที่จะได้รับชื่อคุณสมบัติที่สืบทอดมาซึ่งไม่สามารถระบุได้ของวัตถุ?
ใน JavaScript เรามีสองสามวิธีในการรับคุณสมบัติของวัตถุขึ้นอยู่กับสิ่งที่เราต้องการได้รับ 1) Object.keys()ซึ่งส่งคืนคุณสมบัติที่นับได้ของอ็อบเจ็กต์ทั้งหมดเป็นของตัวเองวิธี ECMA5 2) for...inลูปซึ่งส่งคืนคุณสมบัติที่นับได้ทั้งหมดของอ็อบเจกต์ไม่ว่าจะเป็นคุณสมบัติของตัวเองหรือสืบทอดมาจากโซ่ต้นแบบ 3) Object.getOwnPropertyNames(obj)ซึ่งส่งคืนคุณสมบัติของตัวเองทั้งหมดของวัตถุแจกแจงได้หรือไม่ นอกจากนี้เรายังมีวิธีการเช่นhasOwnProperty(prop)ให้เราตรวจสอบว่าทรัพย์สินนั้นสืบทอดมาหรือเป็นของวัตถุนั้นจริงหรือไม่และpropertyIsEnumerable(prop)ตามที่ชื่อแนะนำช่วยให้เราตรวจสอบว่ามีการแจกแจงคุณสมบัติหรือไม่ ด้วยตัวเลือกทั้งหมดนี้ไม่มีทางที่จะได้รับคุณสมบัติที่ไม่สามารถระบุได้และไม่ใช่ของตัวเองซึ่งเป็นสิ่งที่ฉันต้องการทำ มีวิธีใดบ้างที่จะทำเช่นนี้? กล่าวอีกนัยหนึ่งฉันจะได้รับรายการคุณสมบัติที่ไม่สามารถนับได้ที่สืบทอดมาได้หรือไม่? ขอขอบคุณ.

11
เราสามารถแสดงความคิดเห็นแบบหลายบรรทัดในไฟล์คุณสมบัติ Java ได้หรือไม่?
ใน.propertiesไฟล์Java เราสามารถแสดงความคิดเห็นบรรทัดเดียวด้วย#. มีวิธีใดบ้างที่เราสามารถแสดงความคิดเห็นแบบหลายบรรทัด

14
เหตุใดฉันจึงควรหลีกเลี่ยงการใช้ Properties ใน C #
ในหนังสือที่ยอดเยี่ยมของเขา CLR Via C # เจฟฟรีย์ริชเตอร์กล่าวว่าเขาไม่ชอบคุณสมบัติและไม่แนะนำให้ใช้ เขาให้เหตุผลบางอย่าง แต่ฉันไม่เข้าใจจริงๆ ใครช่วยอธิบายให้ฉันฟังได้ไหมว่าทำไมฉันจึงควรหรือไม่ควรใช้คุณสมบัติ? ใน C # 3.0 ด้วยคุณสมบัติอัตโนมัติสิ่งนี้เปลี่ยนไปหรือไม่? ในการอ้างอิงฉันได้เพิ่มความคิดเห็นของ Jeffrey Richter: •คุณสมบัติอาจเป็นแบบอ่านอย่างเดียวหรือเขียนอย่างเดียว การเข้าถึงข้อมูลสามารถอ่านและเขียนได้เสมอ หากคุณกำหนดคุณสมบัติวิธีที่ดีที่สุดคือเสนอทั้ง get และ set accessor method •วิธีคุณสมบัติอาจทำให้เกิดข้อยกเว้น การเข้าถึงฟิลด์ไม่เคยทำให้เกิดข้อยกเว้น •คุณสมบัติไม่สามารถส่งผ่านเป็นพารามิเตอร์ out หรือ ref ไปยังเมธอดได้ ฟิลด์สามารถ ตัวอย่างเช่นรหัสต่อไปนี้จะไม่รวบรวม: using System; public sealed class SomeType { private static String Name { get { return null; …
102 c#  properties 

7
ตั้งค่าคุณลักษณะจากพจนานุกรมใน python
เป็นไปได้ไหมที่จะสร้างวัตถุจากพจนานุกรมใน python ในลักษณะที่แต่ละคีย์เป็นแอตทริบิวต์ของวัตถุนั้น สิ่งนี้: d = { 'name': 'Oscar', 'lastName': 'Reyes', 'age':32 } e = Employee(d) print e.name # Oscar print e.age + 10 # 42 ฉันคิดว่ามันจะค่อนข้างตรงกันข้ามกับคำถามนี้: พจนานุกรม Python จากช่องของวัตถุ

2
การลบคุณสมบัติของอ็อบเจ็กต์ในขณะที่ทำซ้ำมันปลอดภัยหรือไม่?
เมื่อทำซ้ำคุณสมบัติของออบเจ็กต์จะปลอดภัยหรือไม่ที่จะลบออกขณะอยู่ในลูป for-in ตัวอย่างเช่น: for (var key in obj) { if (!obj.hasOwnProperty(key)) continue; if (shouldDelete(obj[key])) { delete obj[key]; } } ในภาษาอื่น ๆ อีกมากมายที่ทำซ้ำบนอาร์เรย์หรือพจนานุกรมและการลบภายในที่ไม่ปลอดภัย อยู่ใน JS ได้หรือไม่? (ฉันใช้ Spidermonkey runtime ของ Mozilla)

4
วิธีการเขียนค่าคุณสมบัติหลายบรรทัดโดยใช้ PropertiesConfiguration
ฉันมีไฟล์คุณสมบัติที่มีคุณสมบัติที่มีค่ารายการ (คั่นด้วยเครื่องหมายจุลภาค) จะเขียนคุณสมบัตินี้ในหลายบรรทัดได้อย่างไร (แบ็กสแลชหลังเครื่องหมายจุลภาค)? ฉันไม่พบอะไรเกี่ยวกับเรื่องนี้หรืออย่างน้อยก็เกี่ยวกับการหลีกเลี่ยงเครื่องหมายจุลภาคเป็นลูกน้ำและแบ็กสแลช

6
โมดูลสามารถมีคุณสมบัติเหมือนกับที่ออบเจ็กต์ทำได้หรือไม่
ด้วยคุณสมบัติของ python ฉันสามารถทำให้เป็นเช่นนั้นได้ obj.y เรียกใช้ฟังก์ชันแทนที่จะส่งคืนค่า มีวิธีดำเนินการกับโมดูลหรือไม่? ฉันมีกรณีที่ฉันต้องการ module.y เพื่อเรียกใช้ฟังก์ชันแทนที่จะส่งคืนค่าที่เก็บไว้ที่นั่น

3
ความสามารถในการเข้าถึงที่ไม่สอดคล้องกัน: ประเภทคุณสมบัติเข้าถึงได้น้อย
โปรดมีคนช่วยแก้ไขข้อผิดพลาดต่อไปนี้: การเข้าถึงที่ไม่สอดคล้องกัน: ประเภทคุณสมบัติ 'Test.Delivery' สามารถเข้าถึงได้น้อยกว่าคุณสมบัติ 'Test.Form1.thelivery' private Delivery thedelivery; public Delivery thedelivery { get { return thedelivery; } set { thedelivery = value; } } ฉันไม่สามารถเรียกใช้โปรแกรมได้เนื่องจากข้อความแสดงข้อผิดพลาดของความไม่สอดคล้องกัน ชั้นจัดส่งของฉันมีดังนี้: namespace Test { class Delivery { private string name; private string address; private DateTime arrivalTime; public string Name { get { return name; …
101 c#  properties 

6
วิธีการตั้งค่าวัตถุ Javascript แบบไดนามิก?
เป็นการยากที่จะอธิบายกรณีด้วยคำพูดขอฉันยกตัวอย่าง: var myObj = { 'name': 'Umut', 'age' : 34 }; var prop = 'name'; var value = 'Onur'; myObj[name] = value; // This does not work eval('myObj.' + name) = value; //Bad coding ;) ฉันจะตั้งค่าคุณสมบัติตัวแปรด้วยค่าตัวแปรในออบเจ็กต์ JavaScript ได้อย่างไร

10
คุณสมบัติอ่านอย่างเดียวที่คำนวณเทียบกับฟังก์ชันใน Swift
ในเซสชัน Introduction to Swift WWDC คุณสมบัติอ่านอย่างเดียวdescriptionจะแสดง: class Vehicle { var numberOfWheels = 0 var description: String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description) มีผลกระทบใด ๆ ในการเลือกแนวทางข้างต้นโดยใช้วิธีการแทน: class Vehicle { var numberOfWheels = 0 func description() -> String { return "\(numberOfWheels) wheels" } } let vehicle = …

9
WCF เน้นคุณสมบัติโดยไม่มี "set" วิธีแก้ปัญหาใด ๆ
ฉันมีคลาสบางคลาสที่ฉันผ่านเนื่องจากเมธอดบริการและคลาสนั้นมีคุณสมบัติรับอย่างเดียว: [DataContract] public class ErrorBase { [DataMember] public virtual string Message { get { return ""; } } } ฉันได้รับข้อยกเว้นในด้านการบริการ: System.Runtime.Serialization.InvalidDataContractException: ไม่ได้ตั้งค่าวิธีการสำหรับคุณสมบัติ 'ข้อความ' ในประเภท 'MyNamespace.ErrorBase' ฉันต้องมีคุณสมบัตินี้เป็นเพียงผู้เริ่มต้นฉันไม่สามารถอนุญาตให้ผู้ใช้กำหนดค่าได้ วิธีแก้ปัญหาใด ๆ ที่ฉันสามารถใช้ได้? หรือฉันไม่มีคุณสมบัติเพิ่มเติมบางอย่าง?

10
คุณสมบัติอ่านอย่างเดียวของ Python
ฉันไม่รู้ว่าแอตทริบิวต์ควรเป็นส่วนตัวเมื่อใดและควรใช้คุณสมบัติหรือไม่ ฉันอ่านเมื่อเร็ว ๆ นี้ว่า setters และ getters ไม่ใช่ pythonic และฉันควรใช้ property decorator ไม่เป็นไร. แต่ถ้าฉันมีแอตทริบิวต์จะต้องไม่ถูกตั้งค่าจากภายนอกชั้นเรียน แต่สามารถอ่านได้ (แอตทริบิวต์แบบอ่านอย่างเดียว) แอตทริบิวต์นี้ควรเป็นแบบส่วนตัวหรือไม่และโดยส่วนตัวฉันหมายถึงด้วยเครื่องหมายขีดล่างเช่นนั้นself._xหรือไม่ ถ้าใช่แล้วจะอ่านโดยไม่ใช้ getter ได้อย่างไร? วิธีเดียวที่ฉันรู้ตอนนี้คือการเขียน @property def x(self): return self._x ด้วยวิธีนี้ฉันสามารถอ่านแอตทริบิวต์ได้obj.xแต่ฉันไม่สามารถตั้งค่าได้obj.x = 1จึงไม่เป็นไร แต่ฉันควรสนใจเกี่ยวกับการตั้งค่าวัตถุที่ไม่ต้องตั้งค่าหรือไม่? บางทีฉันควรจะปล่อยมันไป แต่แล้วอีกครั้งฉันไม่สามารถใช้ขีดล่างได้เนื่องจากการอ่านobj._xเป็นเลขคี่สำหรับผู้ใช้ดังนั้นฉันจึงควรใช้obj.xอีกครั้งผู้ใช้ไม่รู้ว่าเขาต้องไม่ตั้งค่าคุณลักษณะนี้ ความคิดเห็นและการปฏิบัติของคุณคืออะไร?

5
คุณสมบัติ C #: จะใช้คุณสมบัติชุดที่กำหนดเองโดยไม่มีฟิลด์ส่วนตัวได้อย่างไร
ฉันต้องการทำสิ่งนี้: public Name { get; set { dosomething(); ??? = value } } เป็นไปได้ไหมที่จะใช้ฟิลด์ส่วนตัวที่สร้างขึ้นโดยอัตโนมัติ หรือจำเป็นต้องใช้วิธีนี้: private string name; public string Name { get { return name; } set { dosomething(); name = value } }
96 c#  properties 

2
Moq, SetupGet, การเยาะเย้ยคุณสมบัติ
ฉันพยายามล้อเลียนคลาสที่เรียกว่าUserInputEntityซึ่งมีคุณสมบัติที่เรียกว่าColumnNames: (มันมีคุณสมบัติอื่น ๆ ฉันเพิ่งทำให้มันง่ายขึ้นสำหรับคำถาม) namespace CsvImporter.Entity { public interface IUserInputEntity { List<String> ColumnNames { get; set; } } public class UserInputEntity : IUserInputEntity { public UserInputEntity(List<String> columnNameInputs) { ColumnNames = columnNameInputs; } public List<String> ColumnNames { get; set; } } } ฉันมีชั้นเรียนผู้นำเสนอ: namespace CsvImporter.UserInterface { public interface IMainPresenterHelper { //... …
94 c#  c#-4.0  properties  moq 

7
คุณสมบัติอ่านอย่างเดียวใน Objective-C?
ฉันได้ประกาศคุณสมบัติแบบอ่านอย่างเดียวในอินเทอร์เฟซของฉันดังนี้: @property (readonly, nonatomic, copy) NSString* eventDomain; บางทีฉันอาจจะเข้าใจคุณสมบัติผิด แต่ฉันคิดว่าเมื่อคุณประกาศเป็นreadonlyคุณสามารถใช้ตัวตั้งค่าที่สร้างขึ้นภายใน.mไฟล์การนำไปใช้งาน ( ) แต่เอนทิตีภายนอกไม่สามารถเปลี่ยนค่าได้ คำถาม SO นี้บอกว่านั่นคือสิ่งที่ควรเกิดขึ้น นั่นคือพฤติกรรมที่ฉันตามมา อย่างไรก็ตามเมื่อพยายามใช้ standard setter หรือ dot syntax เพื่อตั้งค่าeventDomainภายในเมธอด init ของฉันมันทำให้ฉันมีunrecognized selector sent to instance.ข้อผิดพลาด แน่นอนฉันกำลัง@synthesizeมีทรัพย์สิน พยายามใช้มันดังนี้: // inside one of my init methods [self setEventDomain:@"someString"]; // unrecognized selector sent to instance error ฉันเข้าใจผิดเกี่ยวกับการreadonlyประกาศเกี่ยวกับทรัพย์สินหรือไม่? หรือมีอย่างอื่นเกิดขึ้น?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.