{"id":14359,"date":"2022-10-07T12:35:03","date_gmt":"2022-10-07T07:05:03","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/"},"modified":"2022-10-07T12:35:03","modified_gmt":"2022-10-07T07:05:03","slug":"solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/","title":{"rendered":"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-53938152\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"53938152\" data-parentid=\"53937642\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>I&#8217;m not sure if the small scope you share with us is enough to give a meaningful answer; but neither I&#8217;m sure sharing with us a bigger part of the code would be really helpful.<\/p>\n<p>Anyway,  with the small information you gave us, I can think of a couple suggestions:<\/p>\n<p><strong>1. Create a custom control<\/strong>.<\/p>\n<p>If you say you have group of controls that repeat themselves once for each day of the week, and each group of control executes the same logic, it would be better to create a custom control that contains both all the controls each day needs, and the logic within each group of controls. Add methods, functions and events to control its behaviour and its interaction with the rest of the form. Then just put as many instances of that control as you need, and let the control control itself.<\/p>\n<p><strong>2. Don&#8217;t pass controls as parameters, pass their values<\/strong>.<\/p>\n<p>Passing the controls as parameters adds little to no value to your code, increases complexity, tightens coupling and could even be considered a code smell. Instead, create methods and function that receive values as parameters, and call them using the values of the controls. With this, you could even create a POCO that contains all the values needed, and receive that as parameter &#8211; just make sure each POCO is related to the logical design and not to the functions instead (i.e. don&#8217;t create one for each function; create 4 or 5 that can contain all necesary values and receive as many as needed in each function). This would also be a step into the &#8216;decoupling&#8217; direction, allowing you to eventually separate your code in layers.<\/p>\n<p><strong>3. Use return values instead of reference parameters<\/strong>.<br \/>\nOne thing that increases the number of parameters received by your method is that you also receive the object whose state will be modified by it. You could instead return a value and assign it to the target control, both reducing the number of parameters and increasign the usefullness of your function. <\/p>\n<p>Taking these points in consideration, and using your example, instead of this:<\/p>\n<pre><code>private void validate(DateTimePicker start, DateTimePicker end, DateTimePicker lunch, Label day)\n{\n    if ((lunch.Value &lt; start.Value || lunch.Value &gt;= end.Value))\n    {\n        day.Visible = true;\n    }\n    if ((lunch.Value &gt;= start.Value &amp;&amp; lunch.Value &lt; end.Value))\n    {\n        day.Visible = false;\n    }\n}\n<\/code><\/pre>\n<p>You could have this:<\/p>\n<pre><code>private bool validate(DateTime start, DateTime end, DateTime lunch)\n{\n    return lunch &lt; start || lunch &gt; end;\n}\n\npublic bool validateControl()\n{\n    \/\/executes all validations\n    this.lblDay.Visible = validate(dtpStart.Value, dtpEnd.Value, dtpLunch.Value);\n}\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">10<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Whats the best way to group a lot of controls for passing as parameters to a method? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] I&#8217;m not sure if the small scope you share with us is enough to give a meaningful answer; but neither I&#8217;m sure sharing with us a bigger part of the code would be really helpful. Anyway, with the small information you gave us, I can think of a couple suggestions: 1. Create a custom &#8230; <a title=\"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\" aria-label=\"More on [Solved] Whats the best way to group a lot of controls for passing as parameters to a method?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324],"class_list":["post-14359","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Whats the best way to group a lot of controls for passing as parameters to a method? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] I&#8217;m not sure if the small scope you share with us is enough to give a meaningful answer; but neither I&#8217;m sure sharing with us a bigger part of the code would be really helpful. Anyway, with the small information you gave us, I can think of a couple suggestions: 1. Create a custom ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-07T07:05:03+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method?\",\"datePublished\":\"2022-10-07T07:05:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\"},\"wordCount\":393,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\",\"name\":\"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-07T07:05:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method? - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method? - JassWeb","og_description":"[ad_1] I&#8217;m not sure if the small scope you share with us is enough to give a meaningful answer; but neither I&#8217;m sure sharing with us a bigger part of the code would be really helpful. Anyway, with the small information you gave us, I can think of a couple suggestions: 1. Create a custom ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/","og_site_name":"JassWeb","article_published_time":"2022-10-07T07:05:03+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method?","datePublished":"2022-10-07T07:05:03+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/"},"wordCount":393,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/","url":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/","name":"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-07T07:05:03+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-best-way-to-group-a-lot-of-controls-for-passing-as-parameters-to-a-method\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Whats the best way to group a lot of controls for passing as parameters to a method?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/14359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=14359"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/14359\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=14359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=14359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=14359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}