Let $T$ be a positive integer. Find all functions $f: \mathbb {Z}^+ \times \mathbb {Z}^+ \to \mathbb {Z}^+$, such that there exists integers $C_0,C_1,\ldots ,C_T$ satisfying:
(1) For any positive integer $n$, the number of positive integer pairs $(k,l)$ such that $f(k,l)=n$ is exactly $n$.
(2) For any $t=0,1,\ldots ,T,$ as well as for any positive integer pair $(k,l)$, the equality $f(k+t,l+T-t)-f(k,l)=C_t$ holds.
1. **Given Conditions and Initial Setup:**
   - We are given a function \( f: \mathbb{Z}^+ \times \mathbb{Z}^+ \to \mathbb{Z}^+ \) and integers \( C_0, C_1, \ldots, C_T \).
   - Condition (1): For any positive integer \( n \), the number of positive integer pairs \( (k, l) \) such that \( f(k, l) = n \) is exactly \( n \).
   - Condition (2): For any \( t = 0, 1, \ldots, T \) and any positive integer pair \( (k, l) \), the equality \( f(k+t, l+T-t) - f(k, l) = C_t \) holds.

2. **Claim 1: Arithmetic Sequences:**
   - We need to show that the sequences \( C_0, C_1, \ldots, C_T \) and \( f(1, n), f(2, n-1), \ldots, f(n, 1) \) are arithmetic sequences with the same common difference.
   - From Condition (2), we have:
     \[
     f(a, b) + 2C_t = f(a + 2t, b + 2(T - t))
     \]
     This can be rewritten as:
     \[
     f(a, b) + 2C_t = f(a + (t-1) + (t+1), b + (T-t+1) + (T-t-1)) = f(a, b) + C_{t-1} + C_{t+1}
     \]
     Therefore, we get:
     \[
     2C_t = C_{t-1} + C_{t+1}
     \]
     This implies that \( C_0, C_1, \ldots, C_T \) is an arithmetic sequence.

3. **Arithmetic Sequence for \( f(k, n-k) \):**
   - Similarly, using Condition (2) again:
     \[
     f(k, n-k) + C_t = f(k+t, n-k + (T-t))
     \]
     This can be rewritten as:
     \[
     f(k, n-k) + C_t = f((k+1) + (t-1), (n-k-1) + (T-t+1)) = f(k+1, n-k-1) + C_{t-1}
     \]
     Thus, \( f(1, n), f(2, n-1), \ldots, f(n, 1) \) is also an arithmetic sequence with difference \( C_t - C_{t-1} \).

4. **Determining \( C_t \):**
   - Let \( (C_0, C_1, \ldots, C_T) = (c, c+d, \ldots, c+Td) \). Without loss of generality, assume \( d > 0 \).
   - We need to determine the values of \( \{ f(a, b) \mid a + b \leq T+1 \} \).

5. **Constructing Tables:**
   - Construct \( T \) tables, numbered \( 1 \) to \( T \), such that:
     - The first row of the \( i \)-th table consists of the \( i \) values \( f(1, i), f(2, i-1), \ldots, f(i, 1) \).
     - Each subsequent row is \( T \) entries longer than the previous row.
     - An entry is \( c \) more than the entry immediately above it, and \( d \) more than the entry to its immediate left.

6. **Example with \( (T, c, d) = (2, 1, 2) \):**
   - Here are the first four rows of table \( 1 \) with \( f(1, 1) = 1 \):
     \[
     \begin{array}{ccccccc}
     1 & & & & & & \\
     2 & 4 & 6 & & & & \\
     3 & 5 & 7 & 9 & 11 & & \\
     4 & 6 & 8 & 10 & 12 & 14 & 16 \\
     \end{array}
     \]

7. **Final Calculation:**
   - Each column is constant modulo \( c \), and the first entry in each column is one of \( T \) residues modulo \( d \) and constant modulo \( \gcd(c, d) \).
   - A given integer \( n \) will only appear in columns whose first entry is both less than \( n \) and congruent to \( n \) modulo \( c \).
   - Thus, it will appear \( \frac{nT}{c(c+Td)/\gcd(c,d)} + o(n) \) times if and only if its residue modulo \( \gcd(c,d) \) appears in the table, or it will never appear.
   - Each of these residues must appear the same number of times by symmetry, so they each will appear in \( T/\gcd(c,d) \) tables.
   - We must have:
     \[
     \left( \frac{nT}{c(c+Td)/\gcd(c,d)} + o(n) \right) \cdot \frac{T}{\gcd(c,d)} = n
     \]
     This simplifies to:
     \[
     c(c+Td) = T^2
     \]
     This is equivalent to:
     \[
     (2c + Td)^2 = T^2(d^2+4)
     \]
     Which implies \( (c, d) = (T, 0) \).

8. **Conclusion:**
   - Therefore, we have:
     \[
     C_0 = C_1 = \ldots = C_T = T
     \]
     And:
     \[
     f(1, n) = f(2, n-1) = \ldots = f(n, 1)
     \]
     This quickly implies:
     \[
     f(x, y) = x + y - 1
     \]

The final answer is \( \boxed{ f(x, y) = x + y - 1 } \)