Τι είναι μια πιθανή δικαιολογία για να μην περιτυλίγματος μεγάλες λίστες επιχείρημα; (StyleCop SA1115)

ψήφοι
2

Είμαι κολλημένος σε μια μάχη μεταξύ ReSharper και StyleCop, και θα ήθελα να αφήσει νίκη ReSharper, αλλά θέλω να ακούσω τα επιχειρήματα υπέρ της StyleCop πριν το κάνω αυτό.

Όταν γράφω μεγάλες λίστες επιχείρημα ReSharper μπριζόλες λογικά τη λίστα παραμέτρων και επανεκκινεί στην επόμενη γραμμή. Θεωρώ ότι πολύ πιο ευανάγνωστο.

Όταν τρέχω StyleCop όλο τον κώδικα που θέλει να αφήσει αυτές τις γραμμές πολύ καιρό. Δεν μου αρέσει αυτό, έτσι θέλω να αγνοούν ότι ο κανόνας StyleCop (SA1115). Δεν μπορώ να σκεφτώ ένα καλό λόγο για τον οποίο SC θα ήθελε αυτές τις μεγάλες ουρές στην πρώτη θέση - είναι απλά μια περίπτωση «έχουμε πάντα αυτό τον τρόπο γίνεται»;

Δημοσιεύθηκε 09/12/2008 στις 15:05
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
5

StyleCop δεν θέλει να θέσει όλες τις παραμέτρους σας σε μια πραγματικά μεγάλη γραμμή. Ωστόσο, αυτό επίσης δεν θέλει να απλά αυθαίρετα εισάγετε μια αλλαγή γραμμής για να μετακινηθείτε μέρος της λίστας παραμέτρων κάτω στην επόμενη γραμμή. StyleCop θα θέλατε να κάνετε ένα από τα εξής:

public void MyMethod(int param1, int param2, int param3)

public void MyMethod(
    int param1, int param2, int param3)

public void MyMethod(
    int param1,
    int param2,
    int param3)
Απαντήθηκε 29/10/2010 στις 17:23
πηγή χρήστη

ψήφοι
2

Είναι ίσως εκεί να σας υπενθυμίσω ότι η λίστα επιχείρημά σας είναι πολύ μεγάλη και θα πρέπει να μειωθεί.

Απαντήθηκε 09/12/2008 στις 15:07
πηγή χρήστη

ψήφοι
1

Ενώ παίζει για τον κώδικα από αυτό το θέμα , έπεσα και φάουλ του SA1115 μέσω τρέχει StyleCop από το VS IDE. Μετά από μερικά mucking περίπου, εδώ είναι το τελικό αποτέλεσμα που StyleCop αισθάνθηκε ήταν ΟΚ:

public static string Format<T>(string pattern, T template)
{
    Dictionary<string, string> cache = new Dictionary<string, string>();

    return RegexExpression.Replace(
        pattern, 
        match =>
    {
        string key = match.Groups[1].Value;
        string value;

        if (!cache.TryGetValue(key, out value))
        {
            var prop = typeof(T).GetProperty(key);

            if (prop == null)
            {
                throw new ArgumentException("Not found: " + key, "pattern");
            }

            value = Convert.ToString(prop.GetValue(template, null));
            cache.Add(key, value);
        }

        return value;
    });
}

Απλά σκέφτηκα ότι θα το μοιραστώ.

Απαντήθηκε 24/08/2009 στις 22:44
πηγή χρήστη

ψήφοι
0

Φαίνεται ότι ο κανόνας τεχνικά λέει «παράμετρος πρέπει να ακολουθεί το κόμμα.» Αρκετά nit-επιλεκτικοί, αν με ρωτάτε, αλλά μερικοί άνθρωποι πιστεύουν στην έναρξη γραμμών συνέχεια με τα κόμματα για να πραγματικά να δείξει hey! Αυτή η γραμμή είναι μια συνέχεια! Π.χ

void Foo(  int blah
         , string blork
         , ...

Ό, τι επιπλέει τη βάρκα σας, προσωπικά :)

Απαντήθηκε 09/12/2008 στις 15:17
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more