Przejdź do treści stopki
POMOC .NET

C# Parametr wyjściowy (Jak to działa: Przewodnik dla deweloperów)

W świecie programowania .NET wydajność i czytelność mają kluczowe znaczenie przy pisaniu przejrzystego i łatwego w utrzymaniu kodu. Jedną z potężnych funkcji, która przyczynia się do obu tych celów, jest wykorzystanie parametrów wyjściowych języka C#. Parametry wyjściowe umożliwiają metodom zwracanie wielu wartości, co czyni je idealnym wyborem w scenariuszach wymagających dodatkowego kontekstu lub danych. W połączeniu z IronPDF, solidną biblioteką do tworzenia, edycji i przetwarzania plików PDF w języku C#, parametry wyjściowe mogą znacznie usprawnić złożone procesy robocze.

IronPDF ułatwia pracę z plikami PDF, oferując szeroki zestaw funkcji, takich jak wyodrębnianie tekstu, edycja metadanych oraz konwersja HTML do PDF. Wykorzystując parametry wyjściowe wraz z IronPDF, programiści mogą efektywnie wykonywać te zadania i uzyskiwać cenne informacje (takie jak status przetwarzania, komunikaty o błędach lub dodatkowe metadane), które mają kluczowe znaczenie w rzeczywistych aplikacjach.

W tym artykule omówiono koncepcję parametrów wyjściowych w języku C# oraz pokazano, jak połączyć je z IronPDF w celu usprawnienia procesów związanych z plikami PDF. Niezależnie od tego, czy zajmujesz się wyodrębnianiem treści, sprawdzaniem poprawności plików czy generowaniem plików PDF, przekonasz się, jak wykorzystanie parametrów wyjściowych może uprościć kod i zwiększyć jego funkcjonalność.

Czym są parametry wyjściowe w języku C#?

Parametry wyjściowe to charakterystyczna cecha języka C#, która umożliwia metodom zwracanie wielu wartości jednocześnie. Jest to przydatne, gdy trzeba zwrócić więcej niż jedną informację z metody, ale nie chce się enkapsulować danych w złożonej strukturze, takiej jak klasa lub krotka.

W przeciwieństwie do zwykłych parametrów, które przekazują wartości przez odwołanie lub przez wartość, parametrom wyjściowym należy jawnie przypisać wartość w treści metody, zanim metoda zwróci wynik. Dzięki temu po zakończeniu wykonywania metody kod wywołujący otrzymuje zamierzony wynik.

void ExampleMethod(out int result)
{
    result = 42; // Assigning a value is mandatory
}

int value;
ExampleMethod(out value);
Console.WriteLine(value); // Outputs: 42
void ExampleMethod(out int result)
{
    result = 42; // Assigning a value is mandatory
}

int value;
ExampleMethod(out value);
Console.WriteLine(value); // Outputs: 42
Private Sub ExampleMethod(ByRef result As Integer)
	result = 42 ' Assigning a value is mandatory
End Sub

Private value As Integer
ExampleMethod(value)
Console.WriteLine(value) ' Outputs: 42
$vbLabelText   $csharpLabel

Jak pokazano w przykładzie, zmienna value jest przekazywana do ExampleMethod za pomocą słowa kluczowego out. Wewnątrz metody zmiennej result przypisywana jest wartość 42, która następnie znajduje odzwierciedlenie w zmiennej out po zakończeniu wykonywania metody. Zwróć uwagę, że value jest deklarowane przed przekazaniem do metody.

Parametry wyjściowe są powszechnie stosowane w takich scenariuszach, jak:

  • Zwracanie kodów statusu lub komunikatów o błędach.
  • Pobieranie wielu wartości w metodzie, która zwraca wiele wartości.
  • Dostarczanie dodatkowego kontekstu, takiego jak przetwarzanie informacji lub metadanych.

Przegląd IronPDF

Parametr wyjściowy C# (Jak to działa: przewodnik dla programistów): Rysunek 1

IronPDF to wszechstronna i wydajna biblioteka .NET przeznaczona do pracy z dokumentami PDF. Niezależnie od tego, czy chcesz generować pliki PDF z HTML, modyfikować istniejące pliki PDF, czy też wyodrębniać z nich treść, IronPDF zapewnia proste API, które pozwala programistom skupić się na logice swoich aplikacji, a nie na złożoności obsługi plików PDF.

IronPDF upraszcza typowe zadania, takie jak:

Połączenie IronPDF z parametrami wyjściowymi C# pozwala na zwracanie wielu elementów danych z metody, takich jak wyodrębniony tekst, liczba stron lub metadane, bez komplikówania sygnatury metody.

Dlaczego warto połączyć parametry wyjściowe z IronPDF?

Integracja parametrów wyjściowych z IronPDF oferuje programistom kilka kluczowych korzyści:

1. Uproszczenie metod

Korzystając z parametrów wyjściowych, można uniknąć tworzenia złożonych typów zwracanych, takich jak obiekty niestandardowe lub krotki, w celu hermetyzacji wielu wyników. Dzięki temu kod jest bardziej przejrzysty i czytelny. Zamiast zwracać pojedynczy obiekt zawierający kilka właściwości, można użyć wielu parametrów wyjściowych, aby bezpośrednio zwrócić wartości, które mają największe znaczenie.

2. Zwięzły i czytelny kod

Parametry wyjściowe sprawiają, że kod jest zwięzły i łatwy w utrzymaniu, umożliwiając programistom zwracanie dodatkowych danych (np. statusu przetwarzania, błędów lub innych informacji kontekstowych) wraz z głównym wynikiem. Na przykład podczas generowania pliku PDF warto zwrócić zarówno status powodzenia, jak i komunikat wskazujący wynik operacji.

3. Zwiększona elastyczność

Parametry wyjściowe ułatwiają zwracanie wielu wyników z wywołanej metody bez konieczności stosowania złożonych struktur klas. Może to być szczególnie przydatne w zadaniach związanych z przetwarzaniem plików PDF, gdzie może zaistnieć potrzeba wyodrębnienia i zwrócenia zarówno treści tekstowej, jak i metadanych, lub gdzie dodatkowe informacje o stanie mają kluczowe znaczenie dla obsługi błędów i potwierdzania operacji.

Zrozumienie parametrów wyjściowych w języku C

Parametry wyjściowe są deklarowane zarówno w definicji metody, jak i podczas jej wywołania. Różnią się one od zwykłych parametrów tym, że wywołujący nie musi inicjalizować zmiennych przed przekazaniem ich do metody. Zamiast tego sama metoda przypisze wartości do zmiennej out.

W języku C# parametry mogą być przekazywane przez wartość, przez odwołanie lub za pomocą słowa kluczowego out. Przekazując parametr przez odwołanie, zezwalasz metodzie na modyfikację oryginalnej zmiennej i musisz zadeklarować parametr przy użyciu słowa kluczowego ref lub out. Służą one jednak różnym celom.

  • Parametry wyjściowe są używane, gdy chcesz zwrócić wiele wartości z metody, ale wywołujący nie musi wcześniej inicjalizować zmiennych. Zmienne te muszą otrzymać wartość wewnątrz metody przed przekazaniem kontroli z powrotem do kodu wywołującego.
  • Parametry referencyjne (zadeklarowane za pomocą słowa kluczowego ref) również pozwalają metodzie modyfikować przekazaną zmienną, ale kluczową różnicą jest to, że wywołujący musi zainicjować zmienną przed przekazaniem jej do metody. Parametr ref jest używany, gdy chcesz przekazać zmienną do metody i zmodyfikować ją, ale jednocześnie chcesz, aby wywołujący był świadomy jej pierwotnego stanu.

Składnia i definicja

Aby zadeklarować parametr wyjściowy, należy użyć słowa kluczowego out w sygnaturze metody. Wywołujący musi również użyć słowa kluczowego out podczas wywoływania metody, co odróżnia ją od zwykłych parametrów.

void ExampleMethod(out int result)
{
    result = 42;
}
void ExampleMethod(out int result)
{
    result = 42;
}
Private Sub ExampleMethod(ByRef result As Integer)
	result = 42
End Sub
$vbLabelText   $csharpLabel

W tym przypadku parametrowi result musi zostać przypisana wartość w ramach metody, a po zakończeniu działania metody wywołujący otrzyma zaktualizowaną wartość.

Aby pokazać elastyczność w deklaracjach zmiennych, podczas wywoływania metody można również użyć zmiennej lokalnej o typie domyślnym:

int result;
ExampleMethod(out result);
int result;
ExampleMethod(out result);
Dim result As Integer = Nothing
ExampleMethod(result)
$vbLabelText   $csharpLabel

Typowe przypadki użycia

  • Zwracanie kodów statusu lub komunikatów o błędach: Często stosowane w metodach przetwarzających dane, które muszą zwracać dodatkowe informacje zwrotne.
  • Pobieranie wielu wartości: Idealne rozwiązanie, gdy metoda zwraca wiele wartości, na przykład podczas przetwarzania dokumentu PDF.
  • Poprawa wydajności poprzez unikanie wielokrotnych wywołań: Parametry wyjściowe pozwalają uniknąć wykonywania kilku wywołań metod w celu pobrania powiązanych informacji.

Zalety i ograniczenia

Zalety:

  • Wydajne w przypadku zwracania wielu wyników.
  • Upraszcza kod bez konieczności stosowania złożonych typów zwracanych (np. Tuple, List).
  • Zwiększa wydajność poprzez ograniczenie konieczności wielokrotnego wywoływania metod.

Ograniczenia:

  • Może powodować, że listy parametrów metod staną się bardziej złożone, zwłaszcza jeśli używa się zbyt wielu parametrów wyjściowych.
  • Nadmierne użycie parametrów wyjściowych może zmniejszyć ogólną czytelność i łatwość utrzymania kodu.

Omówienie kodu: Pobieranie tekstu przy użyciu parametrów wyjściowych

Krok 1: Konfiguracja IronPDF w projekcie

Aby rozpocząć pracę z IronPDF, zainstaluj pakiet IronPDF NuGet:

Install-Package IronPdf

Krok 2: Definiowanie metody z parametrami wyjściowymi

Następnie zdefiniuj metodę, która wyodrębnia tekst z pliku PDF i zwraca liczbę stron przy użyciu parametrów wyjściowych:

void ExtractTextWithPageCount(string pdfPath, out string extractedText, out int pageCount)
{
    var pdfDocument = PdfDocument.FromFile(pdfPath);
    extractedText = pdfDocument.ExtractAllText();
    pageCount = pdfDocument.PageCount;
}
void ExtractTextWithPageCount(string pdfPath, out string extractedText, out int pageCount)
{
    var pdfDocument = PdfDocument.FromFile(pdfPath);
    extractedText = pdfDocument.ExtractAllText();
    pageCount = pdfDocument.PageCount;
}
Private Sub ExtractTextWithPageCount(ByVal pdfPath As String, ByRef extractedText As String, ByRef pageCount As Integer)
	Dim pdfDocument = PdfDocument.FromFile(pdfPath)
	extractedText = pdfDocument.ExtractAllText()
	pageCount = pdfDocument.PageCount
End Sub
$vbLabelText   $csharpLabel

Krok 3: Wdrożenie i testowanie metody

Na koniec wywołaj metodę i wyświetl wyodrębniony tekst oraz liczbę stron:

string text;
int pages;
ExtractTextWithPageCount("sample.pdf", out text, out pages);
Console.WriteLine($"Extracted Text: {text}\nPages: {pages}");
string text;
int pages;
ExtractTextWithPageCount("sample.pdf", out text, out pages);
Console.WriteLine($"Extracted Text: {text}\nPages: {pages}");
Imports Microsoft.VisualBasic

Dim text As String = Nothing
Dim pages As Integer = Nothing
ExtractTextWithPageCount("sample.pdf", text, pages)
Console.WriteLine($"Extracted Text: {text}" & vbLf & "Pages: {pages}")
$vbLabelText   $csharpLabel

Parametr wyjściowy C# (Jak to działa: przewodnik dla programistów): Rysunek 2

Praktyczne scenariusze z wykorzystaniem IronPDF i parametrów wyjściowych

Scenariusz 1: Pobieranie tekstu z pliku PDF

Parametry wyjściowe mogą służyć do wyodrębniania tekstu, a także do zwracania dodatkowych danych, takich jak liczba stron w dokumencie. Może to być pomocne podczas pracy z dużymi dokumentami lub gdy konieczne jest zmierzenie wydajności ekstrakcji tekstu.

using IronPdf;

public class Program
{
    public static void Main(string[] args)
    {
        void ExtractTextWithPageCount(string pdfPath, out string extractedText, out int pageCount)
        {
            var pdfDocument = PdfDocument.FromFile(pdfPath);
            extractedText = pdfDocument.ExtractAllText();
            pageCount = pdfDocument.PageCount;
        }

        string text;
        int pages;
        ExtractTextWithPageCount("sample.pdf", out text, out pages);
        Console.WriteLine($"Extracted Text: {text}\nPages: {pages}");
    }
}
using IronPdf;

public class Program
{
    public static void Main(string[] args)
    {
        void ExtractTextWithPageCount(string pdfPath, out string extractedText, out int pageCount)
        {
            var pdfDocument = PdfDocument.FromFile(pdfPath);
            extractedText = pdfDocument.ExtractAllText();
            pageCount = pdfDocument.PageCount;
        }

        string text;
        int pages;
        ExtractTextWithPageCount("sample.pdf", out text, out pages);
        Console.WriteLine($"Extracted Text: {text}\nPages: {pages}");
    }
}
Imports Microsoft.VisualBasic
Imports IronPdf

Public Class Program
	Public Shared Sub Main(ByVal args() As String)
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'		void ExtractTextWithPageCount(string pdfPath, out string extractedText, out int pageCount)
'		{
'			var pdfDocument = PdfDocument.FromFile(pdfPath);
'			extractedText = pdfDocument.ExtractAllText();
'			pageCount = pdfDocument.PageCount;
'		}

		Dim text As String = Nothing
		Dim pages As Integer = Nothing
		ExtractTextWithPageCount("sample.pdf", text, pages)
		Console.WriteLine($"Extracted Text: {text}" & vbLf & "Pages: {pages}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Parametr wyjściowy C# (Jak to działa: przewodnik dla programistów): Rysunek 3

Scenariusz 2: Sprawdzanie poprawności i eksportowanie metadanych plików PDF

IronPDF może służyć do sprawdzania poprawności metadanych plików PDF i obsługi potencjalnych błędów. Nasze parametry wyjściowe idealnie nadają się do zwracania zarówno metadanych, jak i wszelkich komunikatów o błędach napotkanych podczas walidacji. Na przykład tutaj używamy go do pobrania wartości metadanych "Autor" z dokumentu PDF:

bool ValidateAndExportMetadata(string pdfPath, out string author, out string errorMessage)
{
    try
    {
        var pdfDocument = PdfDocument.FromFile(pdfPath);
        author = pdfDocument.MetaData.Author;
        errorMessage = null;
        return true;
    }
    catch (Exception ex)
    {
        author = null;
        errorMessage = ex.Message;
        return false;
    }
}

string metadata;
string error;
if (ValidateAndExportMetadata("metadata.pdf", out metadata, out error))
{
    Console.WriteLine($"Metadata: {metadata}");
}
else
{
    Console.WriteLine($"Error: {error}");
}
bool ValidateAndExportMetadata(string pdfPath, out string author, out string errorMessage)
{
    try
    {
        var pdfDocument = PdfDocument.FromFile(pdfPath);
        author = pdfDocument.MetaData.Author;
        errorMessage = null;
        return true;
    }
    catch (Exception ex)
    {
        author = null;
        errorMessage = ex.Message;
        return false;
    }
}

string metadata;
string error;
if (ValidateAndExportMetadata("metadata.pdf", out metadata, out error))
{
    Console.WriteLine($"Metadata: {metadata}");
}
else
{
    Console.WriteLine($"Error: {error}");
}
Private Function ValidateAndExportMetadata(ByVal pdfPath As String, ByRef author As String, ByRef errorMessage As String) As Boolean
	Try
		Dim pdfDocument = PdfDocument.FromFile(pdfPath)
		author = pdfDocument.MetaData.Author
		errorMessage = Nothing
		Return True
	Catch ex As Exception
		author = Nothing
		errorMessage = ex.Message
		Return False
	End Try
End Function

Private metadata As String
Private [error] As String
If ValidateAndExportMetadata("metadata.pdf", metadata, [error]) Then
	Console.WriteLine($"Metadata: {metadata}")
Else
	Console.WriteLine($"Error: {[error]}")
End If
$vbLabelText   $csharpLabel

Parametr wyjściowy w języku C# (Jak to działa: przewodnik dla programistów): Rysunek 4

Scenariusz 3: Generowanie i zapisywanie plików PDF

Podczas generowania plików PDF z treści HTML można użyć parametrów wyjściowych, aby przechwycić wynik i wyświetlić komunikat o powodzeniu lub błędzie, poprawiając w ten sposób informację zwrotną dla użytkownika końcowego.

bool GenerateAndSavePdf(string htmlContent, string outputPath, out string statusMessage)
{
    try
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs(outputPath);
        statusMessage = "PDF successfully saved.";
        return true;
    }
    catch (Exception ex)
    {
        statusMessage = $"Error: {ex.Message}";
        return false;
    }
}

string message;
if (GenerateAndSavePdf("<h1>Hello, World!</h1>", "output.pdf", out message))
{
    Console.WriteLine(message);
}
else
{
    Console.WriteLine(message);
}
bool GenerateAndSavePdf(string htmlContent, string outputPath, out string statusMessage)
{
    try
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs(outputPath);
        statusMessage = "PDF successfully saved.";
        return true;
    }
    catch (Exception ex)
    {
        statusMessage = $"Error: {ex.Message}";
        return false;
    }
}

string message;
if (GenerateAndSavePdf("<h1>Hello, World!</h1>", "output.pdf", out message))
{
    Console.WriteLine(message);
}
else
{
    Console.WriteLine(message);
}
Private Function GenerateAndSavePdf(ByVal htmlContent As String, ByVal outputPath As String, ByRef statusMessage As String) As Boolean
	Try
		Dim renderer As New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
		pdf.SaveAs(outputPath)
		statusMessage = "PDF successfully saved."
		Return True
	Catch ex As Exception
		statusMessage = $"Error: {ex.Message}"
		Return False
	End Try
End Function

Private message As String
If GenerateAndSavePdf("<h1>Hello, World!</h1>", "output.pdf", message) Then
	Console.WriteLine(message)
Else
	Console.WriteLine(message)
End If
$vbLabelText   $csharpLabel

Parametr wyjściowy w języku C# (Jak to działa: przewodnik dla programistów): Rysunek 5

Najlepsze praktyki dotyczące korzystania z parametrów wyjściowych

Kiedy używać parametrów wyjściowych w IronPDF

Należy używać parametrów wyjściowych, gdy kluczowe znaczenie ma dodatkowy kontekst, taki jak komunikaty o błędach lub status przetwarzania. Na przykład, jeśli metoda odpowiada za generowanie pliku PDF, zwracanie zarówno komunikatu o stanie, jak i ścieżki do wynikowego pliku PDF zapewnia niezbędną informację zwrotną dla użytkownika lub aplikacji wywołującej.

Unikanie nadużywania parametrów wyjściowych

Chociaż parametry wyjściowe są przydatne, należy unikać ich nadmiernego stosowania w ramach jednej metody. Jeśli zauważysz, że używasz zbyt wielu parametrów wyjściowych, rozważ zwracanie obiektu niestandardowego lub krotki (Tuple), aby jaśniej zapakietować dane.

Obsługa wyjątków i przypadków granicznych

Zawsze należy weryfikować dane wejściowe i odpowiednio obsługiwać wyjątki. Należy upewnić się, że parametry wyjściowe są zainicjowane rozsądnymi wartościami domyślnymi (np. null dla ciągów znaków, 0 dla liczb całkowitych), aby zapobiec nieoczekiwanym zachowaniom. Metody IronPDF mogą generować wyjątki, dlatego kluczowe znaczenie ma właściwa obsługa wyjątków.

Wnioski

Parametry wyjściowe w języku C# to potężna funkcja służąca do zwracania wielu wartości z metody. W połączeniu z IronPDF mogą one uprościć złożone procesy związane z plikami PDF, umożliwiając wydajne wyodrębnianie tekstu, sprawdzanie poprawności metadanych i generowanie plików PDF, a jednocześnie dostarczając cennych informacji zwrotnych. Stosując się do najlepszych praktyk i rozsądnie wykorzystując parametry wyjściowe, można stworzyć wydajny, łatwy w utrzymaniu i zrozumiały kod do zadań związanych z przetwarzaniem plików PDF.

Aby poznać pełne możliwości IronPDF, pobierz bezpłatną wersję próbną i już dziś zacznij integrować ją ze swoimi projektami .NET. Miłego kodowania!

Często Zadawane Pytania

Jak parametry out ulepszają procesy pracy z PDF w C#?

Parametry out w C# pozwalają metodom zwracać wiele wartości, co może być wykorzystane do ulepszania procesów pracy z PDF, zwracając dodatkowe informacje, takie jak liczba stron czy wyniki wydobywania tekstu, przy użyciu bibliotek takich jak IronPDF.

Jakie są zalety używania parametrów out w porównaniu z złożonymi typami zwracanymi?

Użycie parametrów out unika potrzeby stosowania złożonych typów zwracanych jak klasy czy krotki, upraszczając sygnatury metod. Jest to korzystne podczas pracy z IronPDF, ponieważ pozwala na prostszą implementację zadań przetwarzania PDF.

Jak mogę wyodrębnić wiele fragmentów danych z PDF za pomocą C#?

Możesz użyć IronPDF w połączeniu z parametrami out, aby wyodrębnić wiele fragmentów danych z PDF, takich jak tekst i metadane, w jednym wywołaniu metody, co zwiększa efektywność i przejrzystość kodu.

Jaka jest składnia dla używania parametrów out w C#?

Aby używać parametrów out, zadeklaruj je za pomocą słowa kluczowego out w sygnaturze metody. Upewnij się, że są one przypisane do wartości w ramach metody. Jest to szczególnie przydatne dla metod współpracujących z bibliotekami PDF, takimi jak IronPDF.

Kiedy nie jest zalecane używanie parametrów out?

Nie zaleca się stosowania zbyt wielu parametrów out w jednej metodzie, ponieważ może to prowadzić do zamieszania. Zamiast tego, rozważ użycie niestandardowego obiektu lub krotki do skuteczniejszego kapsułkowania danych. Jest to również dobra praktyka, gdy używa się bibliotek takich jak IronPDF.

Jak należy obsługiwać wyjątki przy użyciu parametrów out w C#?

Upewnij się, że wejścia są zweryfikowane i wyjątki są poprawnie obsłużone przez inicjalizację parametrów out wartościami domyślnymi. Podejście to jest kluczowe przy pracy z bibliotekami, takimi jak IronPDF, aby uniknąć nieoczekiwanych wyników lub błędów.

Czy parametry out mogą być używane do poprawy obsługi błędów w przetwarzaniu PDF?

Tak, parametry out mogą być używane do zwracania komunikatów o błędach lub kodów statusu obok głównych danych wyjściowych podczas przetwarzania PDF z IronPDF, poprawiając obsługę błędów i możliwości debugowania.

Do czego są używane parametry out w C#?

Parametry out są używane, aby pozwolić metodom zwracać wiele wartości jednocześnie, co jest szczególnie użyteczne w połączeniu z bibliotekami takimi jak IronPDF do obsługi różnych punktów danych w procesach pracy z PDF.

Jak parametry out mogą poprawić generowanie PDF w C#?

Parametry out mogą być używane do zwracania dodatkowych danych, takich jak status przetwarzania lub metadane, podczas generowania PDF z IronPDF, zwiększając ogólną funkcjonalność i efektywność aplikacji w C#.

Jaki jest przykład zastosowania parametrów out z biblioteką PDF?

Przykład zastosowania to metoda używająca IronPDF do wyodrębnienia tekstu i zwrócenia liczby stron z dokumentu PDF za pomocą parametrów out, umożliwiając efektywne pobieranie danych w jednej operacji.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie