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

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

11
เขตข้อมูลสาธารณะเปรียบเทียบกับคุณสมบัติอัตโนมัติ
เรามักจะบอกว่าเราควรปกป้องการห่อหุ้มด้วยวิธีการ getter และ setter (คุณสมบัติใน C #) สำหรับฟิลด์คลาสแทนที่จะเปิดเผยฟิลด์กับโลกภายนอก แต่มีหลายครั้งที่เขตข้อมูลอยู่ที่นั่นเพื่อเก็บค่าและไม่ต้องการการคำนวณหรือตั้งค่า สำหรับสิ่งเหล่านี้เราทุกคนจะทำตามหมายเลขนี้: public class Book { private string _title; public string Title { get{ return _title; } set{ _title = value; } } } ฉันมีคำสารภาพฉันทนไม่ได้ที่จะเขียนทุกอย่าง (จริง ๆ แล้วมันไม่จำเป็นต้องเขียนมันต้องดูมัน) ดังนั้นฉันจึงไปโกงและใช้พื้นที่สาธารณะ จากนั้นมาพร้อม C # 3.0 และฉันเห็นว่าพวกเขาเพิ่มคุณสมบัติอัตโนมัติ: public class Book { public string Title {get; …

10
ตั้งค่าคุณสมบัติวัตถุโดยใช้การสะท้อน
มีวิธีใน C # ที่ฉันสามารถใช้การสะท้อนเพื่อตั้งค่าคุณสมบัติวัตถุหรือไม่ Ex: MyObject obj = new MyObject(); obj.Name = "Value"; ฉันต้องการตั้งค่าobj.Nameด้วยการสะท้อน สิ่งที่ต้องการ: Reflection.SetProperty(obj, "Name") = "Value"; มีวิธีทำเช่นนี้หรือไม่?

23
react-router - ส่งอุปกรณ์ประกอบฉากไปยังตัวจัดการ
ฉันมีโครงสร้างต่อไปนี้สำหรับแอปพลิเคชัน React.js ของฉันโดยใช้ React Router : var Dashboard = require('./Dashboard'); var Comments = require('./Comments'); var Index = React.createClass({ render: function () { return ( <div> <header>Some header</header> <RouteHandler /> </div> ); } }); var routes = ( <Route path="/" handler={Index}> <Route path="comments" handler={Comments}/> <DefaultRoute handler={Dashboard}/> </Route> ); ReactRouter.run(routes, function (Handler) …

10
Semantic Issue: Getter synthesized getter เป็นไปตามหลักการตั้งชื่อ Cocoa สำหรับการคืนค่าออบเจ็กต์ 'เจ้าของ'
ขณะนี้ฉันใช้ iOS 5 SDK พยายามพัฒนาแอพของฉัน ฉันกำลังพยายามสร้าง NSString พร็อพเพอร์ตี้แล้วทำการสังเคราะห์ในไฟล์. m (ฉันเคยทำสิ่งนี้มาก่อนโดยไม่มีปัญหา) ตอนนี้ฉันเจอสิ่งนี้: "ปัญหาทางความหมาย: ตัวสังเคราะห์ที่ได้รับจากทรัพย์สินตามแผนการตั้งชื่อโกโก้สำหรับส่งคืนวัตถุที่เป็นเจ้าของ" นี่คือรหัสของฉัน: .h @interface ViewController : UIViewController { NSString *newTitle; } @property (strong, nonatomic) NSString *newTitle; .m @synthesize newTitle; ไม่มีใครมีเงื่อนงำฉันจะแก้ไขได้อย่างไร ขอบคุณ !!

8
Kotlin - การเริ่มต้นคุณสมบัติโดยใช้“ โดยขี้เกียจ” กับ“ ล่าช้า”
ใน Kotlin หากคุณไม่ต้องการเริ่มต้นคุณสมบัติคลาสภายในตัวสร้างหรือในส่วนบนของคลาสคุณมีสองตัวเลือกโดยทั่วไป (จากการอ้างอิงภาษา): การเริ่มต้น Lazy lazy () คือฟังก์ชั่นที่รับแลมบ์ดาและส่งคืนอินสแตนซ์ของ Lazy ซึ่งสามารถทำหน้าที่เป็นตัวแทนในการดำเนินการกับคุณสมบัติ lazy: การเรียกครั้งแรกเพื่อรับ () เรียกใช้แลมบ์ดาที่ส่งผ่านขี้เกียจ () และจดจำผลลัพธ์ เพื่อรับ () เพียงแค่ส่งคืนผลลัพธ์ที่จดจำ ตัวอย่าง public class Hello { val myLazyString: String by lazy { "Hello" } } ดังนั้นการโทรแรกและการโทรย่อยทุกที่ไปยังmyLazyStringจะส่งคืน"Hello" การเริ่มต้นช้า โดยปกติคุณสมบัติที่ประกาศว่ามีชนิดที่ไม่เป็น null จะต้องเริ่มต้นในตัวสร้าง อย่างไรก็ตามบ่อยครั้งที่สิ่งนี้ไม่สะดวก ตัวอย่างเช่นคุณสมบัติสามารถเริ่มต้นผ่านการฉีดพึ่งพาหรือในวิธีการตั้งค่าของการทดสอบหน่วย ในกรณีนี้คุณไม่สามารถจัดหา initializer ที่ไม่ใช่ค่า null ในตัวสร้าง แต่คุณยังต้องการหลีกเลี่ยงการตรวจสอบค่า Null เมื่ออ้างอิงคุณสมบัติภายในเนื้อความของคลาส เพื่อจัดการกรณีนี้คุณสามารถทำเครื่องหมายคุณสมบัติด้วยตัวปรับล่าช้า: …
280 properties  kotlin 

12
ลบองค์ประกอบอาร์เรย์ตามคุณสมบัติของวัตถุ
ฉันมีวัตถุหลายอย่างเช่น: var myArray = [ {field: 'id', operator: 'eq', value: id}, {field: 'cStatus', operator: 'eq', value: cStatus}, {field: 'money', operator: 'eq', value: money} ]; ฉันจะลบรายการเฉพาะตามคุณสมบัติได้อย่างไร เช่นฉันจะลบวัตถุอาร์เรย์ที่มี 'เงิน' เป็นคุณสมบัติเขตข้อมูลได้อย่างไร


16
ทางลัดเพื่อสร้างคุณสมบัติใน Visual Studio หรือไม่
ฉันเคยเห็นบางคนสร้างคุณสมบัติใน C # เร็วมาก แต่พวกเขาทำได้อย่างไร มีช็อตคัตใดบ้างใน Visual Studio (ปัจจุบันใช้ Visual Studio 2010) เพื่อสร้างคุณสมบัติ ฉันใช้ C # ตัวอย่างเช่น, public string myString {get;set;}

16
มีเหตุผลใดที่จะใช้คุณสมบัติส่วนตัวใน C # หรือไม่
ฉันเพิ่งรู้ว่าการสร้างคุณสมบัติ C # สามารถใช้กับโมดิฟายเออร์ส่วนตัวได้ : private string Password { get; set; } แม้ว่านี่จะเป็นที่น่าสนใจในทางเทคนิค, ฉันไม่สามารถจินตนาการเมื่อผมจะใช้มันตั้งแต่ข้อมูลส่วนตัวที่เกี่ยวข้องกับการแม้กระทั่งพิธีน้อย : private string _password; และฉันไม่สามารถจินตนาการได้ว่าเมื่อใดที่ฉันจะต้องได้รับภายในแต่ไม่ได้ตั้งค่าหรือตั้งค่าแต่ไม่ได้รับข้อมูลส่วนตัว: private string Password { get; } หรือ private string Password { set; } แต่อาจจะมีกรณีการใช้งานกับคลาสที่ซ้อนกัน / สืบทอดหรืออาจเป็นที่ / ชุด / อาจมีตรรกะแทนเพียงแค่คืนค่าของคุณสมบัติแม้ว่าฉันจะมีแนวโน้มที่จะรักษาคุณสมบัติที่เรียบง่ายอย่างเคร่งครัดและให้วิธีการที่ชัดเจนทำตรรกะใด ๆ GetEncodedPassword()เช่น ไม่มีใครใช้คุณสมบัติส่วนตัวใน C # ด้วยเหตุผลใดก็ตามหรือเป็นเพียงหนึ่งในโครงสร้างทางเทคนิคที่เป็นไปได้ แต่ไม่ค่อยมีคนใช้จริง ภาคผนวก คำตอบที่ดีอ่านผ่านพวกเขาฉันคัดการใช้งานเหล่านี้สำหรับคุณสมบัติส่วนตัว: เมื่อฟิลด์ส่วนตัวจำเป็นต้องโหลดอย่างเกียจคร้าน เมื่อเขตข้อมูลส่วนตัวต้องการตรรกะเพิ่มเติมหรือเป็นค่าที่คำนวณได้ …

13
ผ่านคุณสมบัติโดยการอ้างอิงใน C #
Наэтотвопросестьответына Stack Overflow нарусском : ภาษา: คำอธิบาย ฉันกำลังพยายามทำสิ่งต่อไปนี้: GetString( inputString, ref Client.WorkPhone) private void GetString(string inValue, ref string outValue) { if (!string.IsNullOrEmpty(inValue)) { outValue = inValue; } } นี่ทำให้ฉันมีข้อผิดพลาดในการคอมไพล์ ฉันคิดว่ามันชัดเจนว่าฉันพยายามทำอะไร โดยทั่วไปฉันต้องการGetStringคัดลอกเนื้อหาของสตริงการป้อนข้อมูลให้กับทรัพย์สินของWorkPhoneClient เป็นไปได้หรือไม่ที่จะส่งทรัพย์สินโดยอ้างอิง?

7
เหตุใดจึงใช้ 'เสมือน' สำหรับคุณสมบัติคลาสในนิยามโมเดลของ Entity Framework
ในบล็อกต่อไปนี้: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx บล็อกมีตัวอย่างโค้ดต่อไปนี้: public class Dinner { public int DinnerID { get; set; } public string Title { get; set; } public DateTime EventDate { get; set; } public string Address { get; set; } public string HostedBy { get; set; } public virtual ICollection<RSVP> RSVPs { get; set; } …
223 c#  class  properties  virtual 

17
จะใช้ไฟล์คุณสมบัติ Java ได้อย่างไร
ฉันมีรายการคู่คีย์ / ค่าของค่าการตั้งค่าที่ฉันต้องการจัดเก็บเป็นไฟล์คุณสมบัติ Java และหลังจากนั้นโหลดและวนซ้ำผ่าน คำถาม: ฉันต้องจัดเก็บไฟล์ในแพ็คเกจเดียวกันกับคลาสที่จะโหลดหรือไม่หรือมีตำแหน่งเฉพาะที่ควรวางไว้หรือไม่? ไฟล์จำเป็นต้องสิ้นสุดในส่วนขยายเฉพาะหรือ.txtตกลงหรือไม่? ฉันจะโหลดไฟล์ในรหัสได้อย่างไร และฉันจะทำซ้ำผ่านค่าภายในได้อย่างไร
219 java  properties 

12
ข้อผิดพลาดในคลาส Swift: คุณสมบัติไม่เริ่มต้นที่การเรียก super.init
ฉันมีสองชั้นShapeและSquare class Shape { var numberOfSides = 0 var name: String init(name:String) { self.name = name } func simpleDescription() -> String { return "A shape with \(numberOfSides) sides." } } class Square: Shape { var sideLength: Double init(sideLength:Double, name:String) { super.init(name:name) // Error here self.sideLength = sideLength numberOfSides = 4 …

6
ฉันสามารถอัพเดทอุปกรณ์ประกอบฉากใน React.js ได้ไหม?
หลังจากเริ่มทำงานกับ React.js ดูเหมือนว่าpropsตั้งใจจะเป็นแบบคงที่ (ส่งผ่านมาจากองค์ประกอบหลัก) ในขณะที่stateการเปลี่ยนแปลงขึ้นอยู่กับเหตุการณ์ อย่างไรก็ตามฉันสังเกตเห็นในเอกสารอ้างอิงถึงcomponentWillReceivePropsซึ่งรวมถึงตัวอย่างนี้โดยเฉพาะ: componentWillReceiveProps: function(nextProps) { this.setState({ likesIncreasing: nextProps.likeCount > this.props.likeCount }); } นี้น่าจะบ่งบอกว่าคุณสมบัติสามารถเปลี่ยนในส่วนขึ้นอยู่กับการเปรียบเทียบของการnextProps this.propsฉันพลาดอะไรไป อุปกรณ์ประกอบฉากเปลี่ยนไปอย่างไรหรือฉันเข้าใจผิดว่าเรื่องนี้ถูกเรียกไปที่ใด?

24
วิธีการเพิ่มคุณสมบัติให้กับคลาสแบบไดนามิก?
เป้าหมายคือการสร้างคลาสจำลองซึ่งทำหน้าที่เหมือนชุดผลลัพธ์ db ตัวอย่างเช่นถ้าเคียวรีฐานข้อมูลส่งคืนโดยใช้นิพจน์ dict {'ab':100, 'cd':200}แล้วฉันต้องการดู: >>> dummy.ab 100 ตอนแรกฉันคิดว่าฉันอาจทำแบบนี้ได้: ks = ['ab', 'cd'] vs = [12, 34] class C(dict): def __init__(self, ks, vs): for i, k in enumerate(ks): self[k] = vs[i] setattr(self, k, property(lambda x: vs[i], self.fn_readyonly)) def fn_readonly(self, v) raise "It is ready only" if __name__ == "__main__": …

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