เราจะสร้างตัวตั้งและตัวตั้งค่าใน Visual Studio ได้อย่างไร


226

โดย "สร้าง" ฉันหมายถึงการสร้างรหัสอัตโนมัติที่จำเป็นสำหรับตัวแปรที่เลือก (ชุด)

แต่คำอธิบายหรือความคิดเห็นที่ชัดเจนเกี่ยวกับแนวปฏิบัติที่ดีนั้นยินดีต้อนรับ

คำตอบ:


297

แทนที่จะใช้Ctrl+ K, Xคุณยังสามารถเพียงแค่พิมพ์propแล้วกดTabสองครั้ง


70
และอย่าลืมแท็บ "propg" + ที่สร้างเหมือนกัน แต่มี setter ส่วนตัว
Andrew M

ดูmsdn.microsoft.com/en-us/library/z41h7fat.aspxสำหรับตัวอย่างโค้ดที่เป็นประโยชน์เพิ่มเติมใน Visual C #
Titus

51

Visual Studio ยังมีคุณสมบัติที่จะสร้างคุณสมบัติจากตัวแปรส่วนตัว

หากคุณคลิกขวาบนตัวแปรในเมนูบริบทที่ปรากฏขึ้นให้คลิกที่ "Refactor" รายการและจากนั้นเลือกแค็ปซูลฟิลด์ ... สิ่งนี้จะสร้างคุณสมบัติ getter / setter สำหรับตัวแปร

ฉันไม่ได้เป็นแฟนตัวยงของเทคนิคนี้เพราะมันค่อนข้างงุ่มง่ามที่จะใช้ถ้าคุณต้องสร้าง getters / setters จำนวนมากและมันทำให้คุณสมบัติตรงด้านล่างของสนามส่วนตัวซึ่งทำให้ฉันเป็นบ้าเพราะฉันมักจะ มีเขตข้อมูลส่วนตัวของฉันทั้งหมดจัดกลุ่มเข้าด้วยกันและคุณลักษณะ Visual Studio นี้แบ่งการจัดรูปแบบคลาสของฉัน


10
น่าเสียดายที่ตัวเลือกนี้ไม่ได้รับจากรุ่นด่วนของ Visual Studio
Toby

12
มี shourtcut ด้วย - ฉันชอบวิธีนี้ :) - CTRL + R + E
Vukasin

32

ฉันใช้ Visual Studio 2013 Professional

  • วางเคอร์เซอร์ของคุณที่บรรทัดของตัวแปรอินสแตนซ์

    ป้อนคำอธิบายภาพที่นี่

  • กดปุ่มรวมCtrl+ R, Ctrl+ Eหรือคลิกปุ่มเมาส์ขวา เลือกเมนูบริบทRefactorแค็ปซูลฟิลด์ ...OKและจากนั้นกด

    ป้อนคำอธิบายภาพที่นี่

  • ในการแสดงตัวอย่างการเปลี่ยนแปลงอ้างอิง - แค็ปซูลฟิลด์Applyโต้ตอบกดปุ่ม

    ป้อนคำอธิบายภาพที่นี่

  • นี่คือผลลัพธ์:

    ป้อนคำอธิบายภาพที่นี่



นอกจากนี้คุณยังวางเคอร์เซอร์สำหรับการเลือกสถานที่ให้บริการ ใช้เมนูแก้ไขRefactorแค็ปซูลฟิลด์ ...


30

โดยการสร้างคุณหมายถึงการสร้างอัตโนมัติ? ถ้านั่นไม่ใช่สิ่งที่คุณหมายถึง:

Visual Studio 2008 มีการนำไปใช้ที่ง่ายที่สุดสำหรับสิ่งนี้:

public PropertyType PropertyName { get; set; }

ในพื้นหลังสิ่งนี้จะสร้างตัวแปรอินสแตนซ์โดยนัยซึ่งคุณสมบัติของคุณจัดเก็บและดึงข้อมูล

อย่างไรก็ตามหากคุณต้องการใส่ตรรกะเพิ่มเติมในคุณสมบัติของคุณคุณจะต้องมีตัวแปรอินสแตนซ์สำหรับมัน:

private PropertyType _property;

public PropertyType PropertyName
{
    get
    {
        //logic here 
        return _property;
    }
    set
    {
        //logic here
        _property = value;
    }
 }

Visual Studio รุ่นก่อนหน้านี้มักใช้วิธีการนี้ด้วยเช่นกัน


มาตรฐานใน C # ไม่ใช่ขีดล่างด้านล่างหลังจากชื่อสมาชิกproperty_แทนที่จะเป็นมาก่อน_propertyหรือไม่?
Julen

2
@Julen - ฉันเคยเห็นการประชุม _property เสมอ
Nathan DeWitt

27

คุณยังสามารถใช้ "propfull" และกดTABสองครั้ง

ตัวแปรและคุณสมบัติพร้อมรับและตั้งค่าจะถูกสร้างขึ้น


นี่คือสิ่งที่มีประโยชน์มากกว่าและฉันมักจะลืมมัน
Dave Alperovich

ฉันทำ XML เป็นอนุกรมและวางไข่คุณสมบัติมากมายทั่วการแสดง + 100,000,000,000 upvotes ถ้าฉันทำได้ ขอบคุณแก้ไข - ดีกว่าสคริปต์ autohotkey + ^ this = ผลผลิตมากกว่า 90000!
กัป

วิดีโอสาธิตการใช้ตัวอย่าง 'propfull' (เหนือสิ่งอื่นใด) ในเวลา 4 นาที 11 วินาที
Peter Mortensen

6

หากคุณใช้ Visual Studio 2005 ขึ้นไปคุณสามารถสร้าง setter / getter อย่างรวดเร็วโดยใช้คำสั่ง insert snippet

คลิกขวาที่รหัสของคุณคลิกที่แทรกตัวอย่าง ( Ctrl+ K, X) แล้วเลือก "prop" จากรายการ


4

หากคุณใช้ ReSharper ให้ไปที่เมนู ReSharper → Codeสร้าง ...

(หรือกดAlt+ Insภายในชั้นเรียนโดยรอบ) และคุณจะได้รับตัวเลือกทั้งหมดสำหรับการสร้างผู้ได้รับและ / หรือผู้ตั้งค่าที่คุณสามารถนึกถึง :-)


3

ใช้propfullคำสำคัญ

มันจะสร้างคุณสมบัติและตัวแปร

พิมพ์คีย์เวิร์ดpropfullในเอดิเตอร์ตามด้วยสองTABวิ มันจะสร้างรหัสเช่น:

private data_type var_name;

public data_type var_name1{ get;set;}

วิดีโอสาธิตการใช้ตัวอย่าง 'propfull' (เหนือสิ่งอื่นใด) ในเวลา 4 นาที 11 วินาที


2
โปรดให้ข้อมูลเพิ่มเติมเกี่ยวกับคำตอบของคุณคำตอบพร้อมคำอธิบายสั้น ๆ ไม่เป็นไรสำหรับผู้เยี่ยมชมคนต่อไป ...
Kiyarash

พิมพ์คีย์เวิร์ด propfull ในเครื่องมือแก้ไขมันจะสร้างโค้ดเช่น data_type var_name ส่วนตัว data_type สาธารณะ var_name1 {รับ; set;}
avinash kadu

คุณสามารถเพิ่มการอ้างอิงสำหรับ "propfull" (โดยการแก้ไขคำตอบของคุณไม่ใช่ที่นี่ในความคิดเห็น)?
Peter Mortensen

3

ฉันสร้างข้อมูลโค้ดของตัวเองว่าเพียง{get; set;}เพิ่ม ฉันทำมันเพียงเพราะฉันพบว่าpropTabเป็นคนที่ไม่กล้า

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
    xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>get set</Title>
            <Shortcut>get</Shortcut>
        </Header>
        <Snippet>
            <Code Language="CSharp">
                <![CDATA[{get; set;}]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

ด้วยวิธีนี้คุณพิมพ์ PropType และ PropName ของคุณด้วยตนเองจากนั้นพิมพ์getTabแล้วมันจะเพิ่มการตั้งค่า มันไม่มีอะไรน่าอัศจรรย์ แต่เนื่องจากฉันมักจะพิมพ์ตัวแก้ไขการเข้าถึงของฉันก่อนอย่างไรก็ตามฉันอาจทำชื่อและประเภทให้จบ


2

ใน Visual Studio Community Edition 2015 คุณสามารถเลือกฟิลด์ทั้งหมดที่คุณต้องการแล้วกดCtrl+.เพื่อสร้างคุณสมบัติโดยอัตโนมัติ

คุณต้องเลือกว่าคุณต้องการใช้คุณสมบัติแทนฟิลด์หรือไม่


1

นอกเหนือจากตัวอย่างข้อมูล 'prop' และคุณสมบัติอัตโนมัติแล้วยังมีตัวเลือกการรีแฟคเตอร์เพื่อให้คุณเลือกฟิลด์ที่มีอยู่และเปิดเผยผ่านคุณสมบัติ ( คลิกขวาที่ฟิลด์→รีแฟคเตอร์ฟิลด์ Encapsulate ... )

นอกจากนี้หากคุณไม่ชอบการใช้งาน 'เสา' คุณสามารถสร้างตัวอย่างของคุณเอง นอกจากนี้เครื่องมือการเปลี่ยนโครงสร้างของบุคคลที่สามเช่นReSharperจะให้คุณลักษณะที่มากยิ่งขึ้นและทำให้ง่ายขึ้นในการสร้างตัวอย่างขั้นสูงขึ้น ฉันขอแนะนำ ReSharper ถ้าคุณสามารถจ่ายได้


เปลี่ยนเส้นทางการเชื่อมโยงแรกที่เอกสาร Visual Studio 2005 เกษียณ หนึ่งในสิบนั้นหมายถึงอะไร สันนิษฐานว่าเป็นคำอธิบายวิธีใช้ตัวอย่างใน Visual Studio
Peter Mortensen

1

ใน visual studio 2019 เลือกคุณสมบัติของคุณดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นกดCtrl+r จากนั้นกดCtrl+e

กล่องโต้ตอบจะปรากฏขึ้นเพื่อแสดงตัวอย่างของการเปลี่ยนแปลงที่จะเกิดขึ้นกับโค้ดของคุณ หากทุกอย่างดูดี (ซึ่งมันจะส่วนใหญ่) OKกด


0

ฉันไม่ได้ติดตั้ง Visual Studio บนเครื่องของฉันอีกต่อไป (และฉันใช้ Linux) แต่ฉันจำได้ว่ามีตัวช่วยสร้างซ่อนอยู่ที่ไหนสักแห่งในเมนูที่ให้สิทธิ์การเข้าถึงตัวสร้างคลาส

ด้วยตัวช่วยสร้างนี้คุณสามารถกำหนดรายละเอียดคลาสทั้งหมดของคุณรวมถึงวิธีการและคุณสมบัติ ถ้าฉันจำได้ดีมีตัวเลือกที่คุณสามารถขอให้ Visual Studio สร้างตัวตั้งค่าและตัวรับสัญญาณอัตโนมัติให้คุณได้

ฉันรู้ว่ามันค่อนข้างคลุมเครือ แต่ลองดูและคุณอาจพบว่า


0

ป้อนคำอธิบายภาพที่นี่

ในนามของเครื่องมือ Visual Studio เราสามารถสร้างคุณสมบัติ C # ได้อย่างง่ายดายโดยใช้เครื่องมือออนไลน์ที่เรียกว่าตัวสร้างคุณสมบัติC #


3
คุณลักษณะที่ไร้ประโยชน์
SeReGa

0

ขั้นแรกรับส่วนขยายเพียงแค่กด ( Ctrl+ Shift+ X) และติดตั้งตัวตั้งค่า getter ....

หลังจากนี้เพียงเลือกตัวแปรของคุณและคลิกขวา ไปที่จานสีคำสั่ง ...

และพิมพ์ getter ... มันจะแนะนำให้สร้าง get และ set method คลิกที่นี่ ...


1
คุณหมายถึงอะไรโดย"ครั้งแรกที่ได้รับการขยาย" ?
Peter Mortensen

ควรกด Ctrl + Shift + X ในบริบทใด
Peter Mortensen

-4

คุณเพียงแค่กดAlt+ Insใน Android Studio

หลังจากประกาศตัวแปรคุณจะได้รับ getters และ setters ในโค้ดที่สร้างขึ้น


ไม่มีใครถามเกี่ยวกับ android studio
warzone_fz

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