คำถามติดแท็ก optional-parameters

พารามิเตอร์ที่เป็นทางเลือกคือพารามิเตอร์ที่ผู้เรียกสามารถรวมไว้ในการเรียกใช้ฟังก์ชันหรือวิธีการได้ แต่ไม่จำเป็นต้องมี เมื่อละเว้นค่าเริ่มต้นจะถูกใช้แทน พารามิเตอร์ทางเลือกมีประโยชน์เมื่อใช้ค่าเริ่มต้นในกรณีส่วนใหญ่ แต่ยังคงต้องระบุในบางโอกาส


22
คุณจะใช้พารามิเตอร์ทางเลือกใน C # ได้อย่างไร?
หมายเหตุ:คำถามนี้ถูกถามในเวลาที่ C # ยังไม่สนับสนุนพารามิเตอร์ทางเลือก (เช่นก่อนหน้า C # 4) เรากำลังสร้างเว็บ API ที่สร้างโดยทางโปรแกรมจากคลาส C # ชั้นมีวิธีการGetFooBar(int a, int b)และ API มีวิธีGetFooBarการ params &a=foo &b=barแบบสอบถามเหมือน คลาสจำเป็นต้องสนับสนุนพารามิเตอร์ทางเลือกซึ่งไม่ได้รับการสนับสนุนในภาษา C # วิธีที่ดีที่สุดคืออะไร

4
ทำไมพารามิเตอร์ทางเลือก C # 4 ที่กำหนดไว้ในส่วนต่อประสานไม่ได้ถูกบังคับใช้ในการใช้งานคลาส?
ฉันสังเกตเห็นว่าด้วยพารามิเตอร์ที่เป็นตัวเลือกใน C # 4 หากคุณระบุพารามิเตอร์ที่เป็นตัวเลือกบนอินเทอร์เฟซที่คุณไม่ต้องทำให้พารามิเตอร์นั้นเป็นตัวเลือกในชั้นเรียนการใช้งานใด ๆ : public interface MyInterface { void TestMethod(bool flag = false); } public class MyClass : MyInterface { public void TestMethod(bool flag) { Console.WriteLine(flag); } } และดังนั้นจึง: var obj = new MyClass(); obj.TestMethod(); // compiler error var obj2 = new MyClass() as MyInterface; obj2.TestMethod(); // …

10
อาร์กิวเมนต์ปกติกับอาร์กิวเมนต์ของคำหลัก
"อาร์กิวเมนต์คำหลัก" แตกต่างจากอาร์กิวเมนต์ปกติอย่างไร ไม่สามารถส่งอาร์กิวเมนต์ทั้งหมดname=valueแทนการใช้ไวยากรณ์ตำแหน่งได้หรือไม่

12
สิ่งก่อสร้าง x = x || y หมายถึงอะไร
ฉันกำลังแก้จุดบกพร่อง JavaScript บางส่วนและไม่สามารถอธิบายสิ่งนี้||ไม่? function (title, msg) { var title = title || 'Error'; var msg = msg || 'Error on Request'; } คนที่สามารถให้คำแนะนำฉันทำไมผู้ชายคนนี้คือการใช้var title = title || 'ERROR'? บางครั้งฉันเห็นมันโดยไม่มีการvarประกาศเช่นกัน


10
มีวิธีให้พารามิเตอร์ที่มีชื่อในการเรียกใช้ฟังก์ชันใน JavaScript หรือไม่
ฉันพบว่าคุณสมบัติพารามิเตอร์ที่มีชื่อใน C # ค่อนข้างมีประโยชน์ในบางกรณี calculateBMI(70, height: 175); ฉันจะใช้อะไรได้ถ้าฉันต้องการสิ่งนี้ใน JavaScript สิ่งที่ฉันไม่ต้องการคือ: myFunction({ param1: 70, param2: 175 }); function myFunction(params){ // Check if params is an object // Check if the parameters I need are non-null // Blah blah } วิธีการที่ฉันใช้ไปแล้ว มีวิธีอื่นอีกไหม? ฉันโอเคที่จะใช้ห้องสมุดเพื่อทำสิ่งนี้

6
ฉันจะใช้พารามิเตอร์ทางเลือกในขั้นตอนการจัดเก็บ T-SQL ได้อย่างไร
ฉันกำลังสร้างกระบวนงานที่เก็บไว้เพื่อทำการค้นหาผ่านตาราง ฉันมีช่องค้นหาที่แตกต่างกันมากมายซึ่งทั้งหมดเป็นตัวเลือก มีวิธีสร้างโพรซีเดอร์ที่เก็บที่จะจัดการกับสิ่งนี้หรือไม่? สมมติว่าฉันมีตารางที่มีสี่ฟิลด์: ID, FirstName, LastName และ Title ฉันสามารถทำสิ่งนี้: CREATE PROCEDURE spDoSearch @FirstName varchar(25) = null, @LastName varchar(25) = null, @Title varchar(25) = null AS BEGIN SELECT ID, FirstName, LastName, Title FROM tblUsers WHERE FirstName = ISNULL(@FirstName, FirstName) AND LastName = ISNULL(@LastName, LastName) AND Title = ISNULL(@Title, Title) END …

5
ฉันจะเริ่มต้นพารามิเตอร์เป็น Guid.Empty ใน C # ได้อย่างไร
ฉันอยากจะบอกว่า: public void Problem(Guid optional = Guid.Empty) { } แต่คอมไพเลอร์บ่นว่า Guid.Empty ไม่ใช่ค่าคงที่เวลารวบรวม เนื่องจากฉันไม่ต้องการเปลี่ยน API ฉันไม่สามารถใช้: Nullable<Guid>

1
บรรทัดคำสั่ง maven จะชี้ไปที่ settings.xml เฉพาะสำหรับคำสั่งเดียวได้อย่างไร
เป็นไปได้หรือไม่ที่จะชี้ไปที่ไฟล์การตั้งค่าเฉพาะเพื่อแทนที่ settings.xml เริ่มต้นที่ maven ใช้สำหรับคำสั่งเดียว ตัวอย่าง: mvn clean install -Dparam # -> pass specific settings file path as param to override default "home/.m2/settings.xml"


5
วิธีสร้างค่าเริ่มต้นสำหรับอาร์กิวเมนต์ของฟังก์ชันใน Clojure
ฉันมาพร้อมกับสิ่งนี้: (defn string-> จำนวนเต็ม [str & [base]] (จำนวนเต็ม / parseInt str (ถ้า (ศูนย์? ฐาน) 10 ฐาน))) (string-> จำนวนเต็ม "10") (string-> จำนวนเต็ม "FF" 16) แต่ต้องเป็นวิธีที่ดีกว่านี้

8
C # 4.0: ฉันสามารถใช้ TimeSpan เป็นพารามิเตอร์เสริมที่มีค่าเริ่มต้นได้หรือไม่
ทั้งสองอย่างนี้สร้างข้อผิดพลาดที่บอกว่าต้องเป็นค่าคงที่เวลาคอมไพล์: void Foo(TimeSpan span = TimeSpan.FromSeconds(2.0)) void Foo(TimeSpan span = new TimeSpan(2000)) ก่อนอื่นใครสามารถอธิบายได้ว่าทำไมค่าเหล่านี้ไม่สามารถกำหนดได้ในเวลารวบรวม? และมีวิธีระบุค่าดีฟอลต์สำหรับอ็อบเจ็กต์ TimeSpan หรือไม่?

3
พารามิเตอร์ทางเลือกใน SQL Server ที่จัดเก็บ proc?
ฉันกำลังเขียน procs ที่เก็บไว้ใน SQL Server 2008 และสงสัยว่าแนวคิดของพารามิเตอร์อินพุตที่เป็นทางเลือกนั้นเป็นไปได้หรือไม่? ฉันคิดว่าฉันสามารถส่งผ่านค่า NULL สำหรับพารามิเตอร์ที่ฉันไม่ต้องการใช้ตรวจสอบค่าใน proc ที่เก็บไว้แล้วนำสิ่งต่าง ๆ จากที่นั่น แต่ฉันสนใจว่าแนวคิดนี้มีอยู่ที่นี่หรือไม่ ขอบคุณ!

8
พารามิเตอร์เสริม Ruby
หากฉันกำหนดฟังก์ชัน Ruby ไว้ดังนี้: def ldap_get ( base_dn, filter, scope=LDAP::LDAP_SCOPE_SUBTREE, attrs=nil ) ฉันจะเรียกมันว่าจัดหาเฉพาะ 2 อาร์กิวเมนต์แรกและอาร์กิวเมนต์สุดท้ายได้อย่างไร ทำไมถึงไม่เหมือน ldap_get( base_dn, filter, , X) เป็นไปได้หรือถ้าเป็นไปได้จะทำได้อย่างไร?

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