diff --git a/QRCoder/QRCodeGenerator.ModulePlacer.cs b/QRCoder/QRCodeGenerator.ModulePlacer.cs index 35eba79b..d5fe88d9 100644 --- a/QRCoder/QRCodeGenerator.ModulePlacer.cs +++ b/QRCoder/QRCodeGenerator.ModulePlacer.cs @@ -107,8 +107,8 @@ public static void PlaceFormat(QRCodeData qrCode, BitArray formatStr, bool offse /// The index of the selected mask pattern. public static int MaskCode(QRCodeData qrCode, int version, BlockedModules blockedModules, ECCLevel eccLevel) { - int? selectedPattern = null; - var patternScore = 0; + int selectedPattern = -1; // no pattern selected yet + var patternScore = int.MaxValue; // lower score is better var size = qrCode.ModuleMatrix.Count - 8; @@ -165,7 +165,7 @@ public static int MaskCode(QRCodeData qrCode, int version, BlockedModules blocke var score = MaskPattern.Score(qrTemp); // Select the pattern with the lowest score, indicating better QR code readability. - if (!selectedPattern.HasValue || patternScore > score) + if (patternScore > score) { selectedPattern = maskPattern; patternScore = score; @@ -173,7 +173,7 @@ public static int MaskCode(QRCodeData qrCode, int version, BlockedModules blocke } // Apply the best mask pattern to the actual QR code. - var selectedPatternFunc = MaskPattern.Patterns[selectedPattern.Value]; + var selectedPatternFunc = MaskPattern.Patterns[selectedPattern]; for (var x = 0; x < size; x++) { for (var y = 0; y < x; y++) @@ -191,7 +191,7 @@ public static int MaskCode(QRCodeData qrCode, int version, BlockedModules blocke } } - return selectedPattern.Value; + return selectedPattern; } ///