Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace OOP_7_pswGenerator
- {
- static class cs
- {
- //int n = 0; NO! una classe statica può contenere solo membri statici
- }
- class GeneraPsw
- {
- static GeneraPsw()
- {
- Console.WriteLine("Costruttore statico chiamato");
- //LunghezzaMediaPsw = 9; NO non esiste una istanza cui appartiene la variabile
- //string s = GeneraPsw(); NO non esiste una istanza su cui invocare il metodo
- }
- private static readonly Random r = new Random();
- private static long totale { get; set; } = 0;
- private static long cont{ get; set; } = 0;
- private int lunghezzaMinima = 3;
- public int LunghezzaMinima
- {
- get => lunghezzaMinima;
- set
- {
- if (value < 3)
- throw new ArgumentOutOfRangeException("Almeno 3 caratteri");
- else
- lunghezzaMinima = value;
- }
- }
- private string caratteriValidi = "abcdefghiABCDEFGHI1234567890!-_$";
- public string CaratteriValidi
- {
- get => caratteriValidi;
- set
- {
- if (value.Length<2)
- throw new ArgumentOutOfRangeException("Almeno 2 carattere tra cui scegliere");
- else
- caratteriValidi = value;
- }
- }
- static public double LunghezzaMediaPsw() => cont == 0 ? 0 : (double)totale / cont;
- public string NuovaPsw(int lunghezza = 0)
- {
- if (lunghezza == 0) lunghezza = lunghezzaMinima;
- if (lunghezza<LunghezzaMinima) throw new ArgumentOutOfRangeException($"Almeno {lunghezzaMinima} caratteri");
- string risultato = "";
- for (int i = 0; i < lunghezza; i++)
- risultato += caratteriValidi[r.Next(0, caratteriValidi.Length)];
- cont++;
- totale += lunghezza;
- return risultato;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- GeneraPsw genera = new GeneraPsw();
- Random r = new Random();
- for (int i=0; i<5; i++)
- Console.WriteLine(genera.NuovaPsw(3+r.Next(1,11)));
- //altre istruzioni ...
- f();
- //altre istruzioni ...
- }
- static void f()
- {
- //altre istruzioni...
- //GeneraPsw g = new GeneraPsw();
- Console.WriteLine($"Lunghezza media: {GeneraPsw.LunghezzaMediaPsw()}");
- if (GeneraPsw.LunghezzaMediaPsw()<8 )
- {
- //....
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement